【问题标题】:Self-Tracking Entity Sets and loading realated entites with include problem自跟踪实体集和加载包含问题的相关实体
【发布时间】:2010-11-14 19:02:20
【问题描述】:

我对自我跟踪实体的 .include 方法有疑问。 我的名为documents 的表与表States、Company、Workers 和Departments 有关系。我想用这些相关数据加载所有文档。我想这样做:

context.Documents.Include("Workers.Departments.States.Companies").ToList(); 

但这给我抛出了一个异常:

指定的包含路径无效。 EntityType“workflowModel.Department”未声明 具有名称的导航属性 “国家”。

同样的错误也适用于公司。什么是奇怪的工人和部门的作品。我也不为公司和州工作(我使用了内置的复数和单数)。我仔细检查了模型上的名称(实体集名称属性)并复制了名称,但仍然没有用。有人知道发生了什么吗?或者也许是其他方法来加载所有这些数据?提前感谢您的帮助!

【问题讨论】:

  • 在没有看到模型的情况下不能完全确定发生了什么,但您应该研究使用 lambdas 的模式,这些模式使急切加载成为强类型。省去了很多这样的头痛。我会尽力为您找到一些好的链接。
  • 使用这个include方法就可以正常工作了,非常感谢! :)

标签: .net entity-framework self-tracking-entities


【解决方案1】:

问题出在这里:

我仔细检查了模型上的名称(实体集名称属性)并复制了名称,但仍然无效

例如,您应该查看 Department 实体并复制表示 State 的导航属性的名称。可能这样的事情会起作用(每个部门只有一个州,而不是很多,这是有道理的):

context.Documents.Include("Workers.Departments.State.Companies").ToList(); 

此外,您应该查看 State 实体并发现 Company 导航属性的名称并将其放入您的 Include 方法中。

【讨论】:

  • 我试过复数和单数都没有用,但正如我上面所说的这个 labda 版本它有效 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
相关资源
最近更新 更多