gpt4 book ai didi

c# - Entity Framework 正确使用连接表?

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:15 24 4
gpt4 key购买 nike

我有下面的语法。我已经设置了 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;

最佳答案

您可以使用方法语法编写相同的查询,如下所示:

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

关于c# - Entity Framework 正确使用连接表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com