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には明らかにいくつかの問題があるため、この場合は!Falseを実行します-しかし、私はそれらを経験したことがないので、LINQクエリを見ることができます-null date

于 2012-11-17T12:52:38.263 に答える
0

私自身の質問に答えるために、linq to sqljoinの匿名クラスの「constant」属性は有効であり、期待される結果をもたらします。私が気付いた予期しない動作の根本的な原因は、まったく別の問題です-ここで説明します

于 2012-11-20T16:20:28.113 に答える