Вопрос с низким приоритетом, поскольку у меня уже есть решение, но я думаю, что есть лучший способ. Я пытаюсь вернуть один результат, как этот запрос SQL:
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();
как ты думаешь - есть ли лучший способ?