LINQ to Entities LEFT JOIN 单个聚合结果
低优先级问题,因为我已经有了解决方案,但我认为还有更好的方法。我试图返回一个结果,就像这个 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();
你认为怎么样 - 有更好的方法吗?
Low priority question as I already have a solution in place, but I think there is a better way. I am trying to return a single result just like this SQL query:
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')
Here is what I have already:
//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();
what do you think - is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个:
try this: