Entity framework 4 EF 4.0为Include()提供的路径参数应该是什么?

Entity framework 4 EF 4.0为Include()提供的路径参数应该是什么?,entity-framework-4,linq-to-objects,Entity Framework 4,Linq To Objects,在我的LINQ中针对我的模型使用时,我提供的路径参数应该是相关对象的名称还是导航属性的名称 我这样问是因为同一个表与另一个表有多个关系。我注意到在设计器中,相关表的导航属性如下所示: RelatedTable RelatedTable1 ... RelatedTablen 延迟加载已关闭,因此我需要显式加载相关对象。我只希望通过导航属性相关的对象:“RelatedTable1”我已尝试提供导航属性名称(即“RelatedTable1”),以包括: from row in Table.Inclu

在我的LINQ中针对我的模型使用时,我提供的路径参数应该是相关对象的名称还是导航属性的名称

我这样问是因为同一个表与另一个表有多个关系。我注意到在设计器中,相关表的导航属性如下所示:

RelatedTable
RelatedTable1
...
RelatedTablen
延迟加载已关闭,因此我需要显式加载相关对象。我只希望通过导航属性相关的对象:“RelatedTable1”我已尝试提供导航属性名称(即“RelatedTable1”),以包括:

from row in Table.Include("RelatedTable1")
select row
而且它有效!这表明路径参数应该是导航属性的名称。但是,我也尝试了相关实体的名称,即:

from row in Table.Include("RelatedTable")
select row
而且它也有效!我只是想了解发生了什么事


(LazyLoading已关闭,如果我不使用Include(),则不会获取相关内容)。

您可以使用导航属性的名称,也可以链接它们:

或者,如果您喜欢强输入,您可以:


导航属性的名称。这当然有效。您将
RelatedTable
RelatedTable1
作为导航属性。但是连接的字段是不同的。谢谢-你是对的,我不应该感到惊讶,因为我应该得出结论,它一定是正在使用的导航属性。我仍然认为这是文档应该说明的事情!
db.Tables.Include("RelatedTable.RelatedTable2");
db.Tables.Include(x => x.RelatedTable);