gpt4 book ai didi

c# - 如何优化我的 LINQ 查询?

转载 作者:行者123 更新时间:2023-11-30 20:25:19 25 4
gpt4 key购买 nike

我已经编写了以下 LINQ 查询以返回组列表,然后分别迭代列表。

我只需要具有特定电子邮件的用户组列表。

我确信这可能不是现在。

我可以用更好的方式(性能方面)重写它吗?

var groups = _context.Users.Where(m => m.Email == email)
.Include(g => g.Customer)
.ThenInclude(r => r.CustomerGroups)
.ThenInclude(t => t.Group)
.First().Customer.CustomerGroups;

foreach (var group in groups)
{
var s = group.Group;
//do something
}

最佳答案

如果您只需要具有相关 Group 实体的 CustomerGroup 实体(正如我在评论部分解释您的说明),那么获取其他相关实体(用户客户)。您可以让 EF 像这样只获取您感兴趣的实体:

var groups = 
(
from user in _context.Users
from customerGroup in user.Customer.CustomerGroups
where user.Email == email
select customerGroup
).Include(cg => cg.Group);

或者当CustomerGroup 不存储相关数据,只存储关系时:

var groups = 
(
from user in _context.Users
from customerGroup in user.Customer.CustomerGroups
where user.Email == email
select customerGroup.Group
);

关于c# - 如何优化我的 LINQ 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52016011/

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