0

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

我问是因为同一张桌子与另一张桌子有不止一种关系。我在设计器中注意到相关表格的导航属性采用以下形式:

RelatedTable
RelatedTable1
...
RelatedTablen

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

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

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

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

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

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

4

1 回答 1

1

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

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

或者,如果您更喜欢强类型,您可以 包含一个 lambda

db.Tables.Include(x => x.RelatedTable);
于 2012-08-17T23:28:40.090 回答