2016-09-16 52 views
1

猜测,我很想在加载嵌套图的时候通知导航属性为EF。请让我知道我错过了什么?实体框架急切加载嵌套的对象图,错误列出无效的列名

我的简化的对象图

Product (ProductId, IEnumerable<Task>, ProductStatusId, ProductStatus) 

ProductStatus (ProductStatusId, Description) 

Task (TaskId, ProductId, TaskStatusId, TaskStatus) 

TaskStatus (TaskStatusId, Description) 

试图加载产品=>与它的任务=>与它们TaskStatus

.Include(p => p.ProductStatus) 
.Include(p => p.Tasks) 
.Include(p => p.Tasks.Select(t => t.TaskStatus)) 

得到以下错误:

{“无效的列名'Ta skStatus_ProductStatusId” \ r \ n无效列 名 'ProductStatusId'}

+0

听起来像关系设置问题。请张贴您的简化课程,其中包含导航属性/密钥属性和数据注释/流利设置。 –

+1

你是对的Ivan Stoev,流利的配置名称错了。 (我们正在编写数百个配置,并且这个列名称映射被搞乱了)。 –

+0

你确定你的数据库是最新的并且与你的对象模型一致吗? – bubi

回答

0

这应该工作

_yourContext.Product 
    .Include(p => p.ProductStatus) 
    .Include(p => p.Tasks.Select(t => t.TaskStatus)) 

您不需要

.Include(p => p.Tasks) 

因为” .INCLUDE(P =>点.Tasks.Select(t => t.TaskStatus))“将从任务集合中获取任务和TaskStatus。

相关问题