假设我有一个这样的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
集合。但是,如果这会带来巨大的性能影响,我可以在必要时获得上下文。
答案 0 :(得分:0)
我不确定您要实现的目标,但要查询您要使用DbContext
的数据。
您可以将上下文配置为自动加载相关实体,方法是将LazyLoadingEnabled
设置为true,或明确地,即在查询数据时,使用随附的Include
扩展名包含员工的路径EF&gt; 4.0。
只要所有公司都在那里,您就可以使用SelectMany
方法获取它。我没有检查过,但是AFAIK,LINQ to SQL将根据需要执行查询。
如果你坚持不公开你的DbContext或者你使用不同的底层上下文,我建议你将它包装在一个存储库中,该存储库执行后面的SelectMany
,但你的朋友是{{1 }和Include
。