EF 4.0提供给Include()的路径参数应该是什么?

时间:2012-08-16 09:13:31

标签: entity-framework-4 linq-to-objects

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

我问,因为同一个表与同一个表有多个关系。我在设计器中注意到相关表的导航属性采用以下形式:

RelatedTable
RelatedTable1
...
RelatedTablen

延迟加载已关闭所以我需要显式加载相关对象。我只想要通过导航属性相关的对象:“RelatedTable1”我尝试将导航属性名称(即“RelatedTable1”)提供给Include,即:

from row in Table.Include("RelatedTable1")
select row

它有效!这表明path参数应该是Navigation属性的名称。但是,我也尝试了相关的实体名称,即:

from row in Table.Include("RelatedTable")
select row

它也有效!我只想要了解发生了什么......

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

1 个答案:

答案 0 :(得分:1)

您可以使用导航属性的名称,也可以将它们链接起来like this

db.Tables.Include("RelatedTable.RelatedTable2");

如果您更喜欢强烈打字,可以include as a lambda

db.Tables.Include(x => x.RelatedTable);
相关问题