【发布时间】:2012-08-18 07:28:40
【问题描述】:
当在我的 LINQ 中针对我的模型使用 Include() 时,我提供的路径参数应该是相关对象的名称还是导航属性的名称?
我问是因为同一张桌子与另一张桌子有不止一种关系。我在设计器中注意到相关表格的导航属性采用以下形式:
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作为导航属性。但是连接的字段是不同的。 -
谢谢 - 你说得对,我不应该感到惊讶,因为应该得出结论,它一定是正在使用的导航属性。我仍然认为这是文档应该说明的内容!
标签: entity-framework-4 linq-to-objects