2011-03-02 64 views
2

我有一个实体A,它以1:M的关系与实体B相关。 B与C以1:M的关系相关。实体框架4 Linq nonlazy Loaded已加载.Include(),包含当前实体的子项的相关实体

甲 - >乙
乙 - >ç

我怎么去,包括C的集合,当我包括B上的一个?

我有这样的:

return (from d in _contextProvider.GetContext<SomeContext>().GetObjectQuery<A>().Include("B") 
       select d).SingleOrDefault(); 

我试过,但因为它认为C被涉及到,并不能找到关系抛出错误。

return (from d in _contextProvider.GetContext<SomeContext>().GetObjectQuery<A> ().Include("B").Include("C") 
       select d).SingleOrDefault(); 

回答

3

尝试

 

return (from d in _contextProvider.GetContext<SomeContext>().GetObjectQuery<A>().Include("B").Include("B.C") 
select d).SingleOrDefault(); 
 
+0

完美,感谢奏效! – Mark 2011-03-02 22:04:40

+3

当你调用'.include(“B.C”)'时,你不需要'.include(“B”)',B也会包含在内。 – 2011-07-04 21:33:14