EF查询获得所有子集合的联合

时间:2012-02-13 05:31:07

标签: c# linq entity-framework entity-framework-4.2

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

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

我有这样的收藏:

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

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

注意:我正在尝试在没有实体框架上下文的情况下执行此操作 - 仅使用Companies集合。但是,如果这会带来巨大的性能影响,我可以在必要时获得上下文。

1 个答案:

答案 0 :(得分:0)

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

您可以将上下文配置为自动加载相关实体,方法是将LazyLoadingEnabled设置为true,或明确地,即在查询数据时,使用随附的Include扩展名包含员工的路径EF&gt; 4.0。

只要所有公司都在那里,您就可以使用SelectMany方法获取它。我没有检查过,但是AFAIK,LINQ to SQL将根据需要执行查询。

如果你坚持不公开你的DbContext或者你使用不同的底层上下文,我建议你将它包装在一个存储库中,该存储库执行后面的SelectMany,但你的朋友是{{1 }和Include