【发布时间】:2018-08-25 09:47:47
【问题描述】:
我编写了以下 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
}
【问题讨论】:
-
您的逻辑实际需要哪些数据?它是否需要有关属于某个组的客户的信息?如果是这样,是否需要电子邮件等用户详细信息?
-
@AdamSimon 我只需要具有特定电子邮件的用户组列表。
-
请解释您当前查询的问题是什么,以及您所说的“优化”、“不正确”或“更好”的方式等到底是什么意思。例如,您是否遇到异常?或者得到不正确的结果,或者它很慢,或者加载了太多的数据,或者没有加载你需要的数据等等。
-
@Bart 好的,我想我的回答现在涵盖了您问题的所有可能方面。
标签: c# sql-server linq entity-framework-core