1

このSQLをLinqクエリに変換する必要がありますが、いつものように理解できません:(

Linq をもう少し詳しく調べる必要があると思います。

select butik.preferences.pref,isnull(butik.userpreferences.selected,0) as selected 
from butik.preferences
left join butik.userpreferences 
     on butik.preferences.id = butik.userpreferences.pref AND 
     butik.userpreferences.userid = 2

ありがとうクリスチャン

4

2 に答える 2

1

left joinLINQにはaの直接翻訳はありません。しかし、あなたが欲しいものをアーカイブする方法はたくさんあります:)

from item in butik.preferences
select new
{
    Pref = butik.preferences.pref,
    IsSelected = 
        butik.userprefences.Any(up => up.pref == item.id && up.userid == 2)
        ? butik.userpreferences.First(up => up.pref == item.id && up.userid == 2).selected
        : false;
}
于 2012-12-21T07:02:21.563 に答える
0

以下のコード スニペットで試してください。

var Query = (from c in butik.preferences
     join v in butik.userpreferences.Where(v => v.userid == 2).DefaultIfEmpty() on c.id equals v.pref into JoinUserPref
     from v in JoinUserPref.DefaultIfEmpty()
     select new
     {
         pref = c.pref,
         selected = (v.selected == null ? 0 : v.selected)
     });

上記のコード スニペットが機能しない場合は、以下の LINQPad を試してください。

http://www.linqpad.net/

于 2012-12-21T10:27:14.583 に答える