0

我知道我们通过使用匿名类在连接中实现了多个条件,但是任何人都可以确认以下方法不起作用吗?似乎没有,我很难验证。

    ...
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 }
4

2 回答 2

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 查询 - null date

于 2012-11-17T12:52:38.263 回答
0

要回答我自己的问题,linq to sql 连接中匿名类中的“常量”属性是有效的,并且确实会带来预期的结果。我注意到的意外行为的根本原因是一个完全不同的问题 -在这里描述

于 2012-11-20T16:20:28.113 回答