2016-09-19 135 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