0
ラムダ式で左結合したい。しかし、どうすればいいのか分かりません。私は多くのLINQクエリを試しましたが、適切なクエリを取得していません。私はEntity Frameworkの初心者です。だから私がそれをやる方法を知っている人なら、私に知らせてください。EFを使用してC#でラムダ式で左結合を行う方法はありますか?
ここで私は、以下のこのクエリを試しています
var query = UsersContext.Users.OrderBy(a => a.Email).Skip(skip).Take(pageSize).ToList();
var result = (from u in db.Notification
join c in query on u.id equals c.Id into j1
from j2 in j1.DefaultIfEmpty()
select new { u, j2 }).OrderByDescending(a => a.u.datetime).Take(3).ToList();
は、これが私のクエリです。私はそれを通知テーブルに参加させて残して、最後の3つの通知だけを取得したい。
EFはORMです。 LINQはORMの上にあるクエリ言語であり、SQLの置換ではありません。エンティティのナビゲーションプロパティとリレーションを定義する必要があります。* NOT *それらをテーブルのように結合しようとします。あなたの 'User'クラスは、あなたが通知を取得するのに使うことができる' Notifications'コレクションプロパティを持っているはずです。 –
エンティティフレームワークのためのヒントbcs i m newを教えてください。 –
'UsersContext'と' db'は異なる 'DbContext'ですか? –