我知道我们通过使用匿名类在连接中实现了多个条件,但是有人可以确认下面的方法不起作用吗?似乎没有,我很难确认。
...
join up in db.UserProfiles on
new { UserId = uf.UserId, IsDeleted = false, IsApproved = true } equals
new { UserId = up.UserId, IsDeleted = up.IsDeleted ?? false, IsApproved = up.aspnet_User.aspnet_Membership.IsApproved }
答案 0 :(得分:0)
"我想要所有已批准但未删除的用户个人资料"
只需使用linq并尝试不重新创建SQL ...不得不猜测一下关系,但你会得到图片
Var x= From up in db.UserProfiles
where up.aspnet_User.aspnet_Membership.IsApproved == true &&
(! up.Isdeleted == true)
select up;
或模仿Coalesce
Var x = From up in db.UserProfiles
where up.aspnet_User.aspnet_Membership.IsApproved == true &&
(up.Isdeleted == false || up.Isdelete == null )
select up;
(我会这样做!在这种情况下是假的,因为null显然有一些问题 - 但我从来没有经历过它们你可以看看LINQ query - null date)
答案 1 :(得分:0)
要回答我自己的问题,linq到sql join中的匿名类中的'常量'属性是有效的,并且确实带来了预期的结果。我注意到的意外行为的根本原因是一个完全不同的问题 - Described Here