[英]Entity Framework proper use of joining tables?
我有下面的語法。 我已經設置了sql約束(即數據模型中的外鍵關系等)。 我想知道如何使用lambda表達式編寫此語句。 可能嗎? 我已經閱讀了有關急切加載的文章,但不確定如何應用以及是否可以更簡潔地編寫查詢?
var nominations = from n in ctx.Nominations
join c in ctx.Nominees
on n.NominationId equals c.NominationId
where c.NomineeADUserName == UserName
select n;
您可以使用Method語法編寫相同的查詢,如下所示:
ctx.Nominations.Join(ctx.Nominees,
n=>n.NominationId,
c=>c.NominationId,
(n,c)=>new {c, n})
.Where(x=>x.c.NomineeADUserName == Username)
.Select(x.n);
我認為使它可讀而不是簡潔很重要。 您的版本更具可讀性。
同樣,無論您編寫方法語法還是查詢語法,查詢都將以惰性方式進行評估。 如果需要,可以通過在任一查詢的末尾調用ToList()來強制進行急切加載。
如果您還希望加載導航屬性(相關實體),則必須在使其成為查詢的一部分之前調用Include方法EntitySet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.