0
低優先級的問題,因爲我已經有一個解決方案,但我認爲有一個更好的方法。我試圖返回一個結果就這樣SQL查詢:LINQ to Entities LEFT JOIN單個聚合結果
SELECT COUNT(*) IsAuthenticated, COUNT(UTP.HashedPassword) IsTempPassword
FROM [EnterpriseDB].[dbo].[UniversalCurrentPassword] AS UCP
LEFT JOIN [EnterpriseDB].[dbo].[UniversalTempPassword] AS UTP
ON UCP.UniversalId = UTP.UniversalId
WHERE UCP.UniversalId = 00000
AND (UCP.HashedPassword = 'some_password'
OR UTP.HashedPassword = 'some_password')
以下是我已經:
//returns null if mismatch
//returns true if temp password
//returns false if current password
bool? query =
(from Password in context.UniversalCurrentPasswords
join TempPassword in context.UniversalTempPasswords
on Password.UniversalId equals TempPassword.UniversalId
where Password.UniversalId == longId
&& (Password.HashedPassword == pwd
|| Password.UniversalMaster.UniversalTempPassword.HashedPassword == pwd)
select (TempPassword.HashedPassword == null ? true : false)).FirstOrDefault();
你認爲什麼 - 有沒有更好的辦法?
在SELECT子句類型條件表達式是布爾,不是bool的?和布爾默認是假的,所以如果你有任何記錄,則'query'變量將是虛假的;它永遠不能爲空。 – phoog 2012-01-04 18:05:59