2016-09-19 5 views
0

У меня будет этот запрос при присоединении к таблице, но он не возвратил данные из таблицы Include или Join.Объединить таблицу в инфраструктуре Entity

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»). Включить («TaskPlugins.Plugin»). Включить (TaskPlugin.Plugin.Store »);' –

ответ

2

Одна вещь, вы должны возвращаться tasks.ToList() и не ctx.Tasks.ToList()

Во-вторых, последний включает .Include(x=>x.TaskPlugins.Select(p=>p.Plugin.Store) единственный необходимости. Первые 2 включает в себя NOT.

+0

Я уже изменил, но потом у меня есть эта новая ошибка: Недопустимое имя столбца «Plugin_StoreId», но StoreId присутствует в таблице плагинов поле и в модели плагина – Jen143

+0

@ Jen143 Какая новая ошибка? – sachin

+0

Недопустимое имя столбца «Plugin_StoreId», но StoreId присутствует в поле таблицы плагинов и в модели плагина – Jen143

Смежные вопросы