2016-09-19 226 views
0

我将在连接表中查询该查询,但它没有从包含表或连接表中返回数据。实体框架中的连接表

var tasks = (from item in ctx.Tasks 
      join tp in ctx.TaskPlugins 
      on item.TaskId equals tp.TaskId 
      select item) 
       .Include(x => x.TaskPlugins).Include(x => x.TaskPlugins.Select(p => p.Plugin)).Include(x=>x.TaskPlugins.Select(p=>p.Plugin.Store)); 
return ctx.Tasks.ToList(); 

但此查询不从TaskPlugins screenshot

错误消息返回数据:((System.Data.Entity.DynamicProxies.Task_6F777A6C52D9E84FD3DF53481564A61969CE62ABBA9D985448F99BFB8A49A2D7)new System.Collections.Generic.Mscorlib_CollectionDebugView<oRouter.Model.Task>(task).Items[0]).TaskPlugins

感谢。

+0

问题出在你的包含中。 '.Include(x => x.TaskPlugins)'应该包含'Plugin'和'Plugin.Store'。因此,请尝试不含2个额外包含的查询,并查看您是否获得了正确的值。 –

+0

@KeyurPATEL不,第一个包含无法获得所有内容。 – sachin

+0

然后为了简单起见,他可以尝试使用字符串方式包括:'.Include(“TaskPlugins”)。Include(“TaskPlugins.Plugin”)。Include(TaskPlugin.Plugin.Store“);' –

回答

2

一件事,你应该返回tasks.ToList()而不是ctx.Tasks.ToList()

其次,最后包括.Include(x=>x.TaskPlugins.Select(p=>p.Plugin.Store)是唯一需要的一个。前两个包括不需要

+0

我已经改变了,但是我得到了这个新错误:列名'Plugin_StoreId'无效,但StoreId存在于插件表中字段和插件模型 – Jen143

+0

@ Jen143什么是新错误? – sachin

+0

无效的列名称'Plugin_StoreId',但StoreId存在于插件表格字段和插件模型中 – Jen143