gpt4 book ai didi

c# - EF 查询以获取所有子集合的并集

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:30 26 4
gpt4 key购买 nike

假设我有一个像这样的 Entity Framework 4.2 类:

class Company
{
public int ID { get; set; }
public ICollection<Employee> Employees { get; set; }
}

我有这样的收藏:

public ICollection<Company> Companies { get; set; }

在整个 Companies 集合中构建所有 员工列表的有效方法是什么?我不需要担心重复。

注意:我尝试在没有 Entity Framework 上下文的情况下执行此操作——仅使用 Companies 集合。但是,如果这会导致巨大的性能损失,我可以在必要时获取上下文。

最佳答案

我不确定您要实现的目标是什么,但是要查询您将要使用 DbContext 的数据。

您可以通过设置 LazyLoadingEnabled 将上下文配置为自动加载相关实体为真,或显式,即在查询数据时,使用 Include 包含员工的路径EF > 4.0 提供的扩展。

一旦所有公司都在那里,您就可以使用 SelectMany 对其进行 linq方法。我没有检查过,但 AFAIK,LINQ to SQL 将按需将查询作为一组执行。

如果您坚持不公开您的 DbContext 或者如果您使用不同的底层上下文,我建议您将它包装在一个存储库中,该存储库在后面执行 SelectMany,但是您的 friend 是IncludeSelectMany

关于c# - EF 查询以获取所有子集合的并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9256006/

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