0

Я читаю данные из базы данных в источник данных gridview. Моя таблица2 может быть пустой. Когда я пытаюсь связать столбцы из Table2, я получаю ошибку, которая не содержит этот столбец. Я проверил данные, поступающие из запроса. Существует таблица 2, но не столбцы. Just Count = 0.Entity Framework Включить связанную таблицу, когда таблица пуста

Как я могу получить столбцы связанной таблицы, даже если она пуста?

return entities.Table1 
     .Include("Table2") 
     .Include("Table3 ") 
     .Include("Table2.Table4") 
     .Where(results => results.ID == anotherId) 
     .ToList(); 

Table1 one to many Table2 
Table3 one to many Table1 
Table4 one to many Table2 

ответ

0

При использовании EF Table1, Table2 и т. Д. Все классы. Метод Include(string) используется для кэширования связанных записей в одном запросе. Вы можете удалить операторы Include, и ваш запрос будет схож. Поэтому, если у вас нет реальных записей в вашей БД между Table1 и Table2, вы получите count = 0 для свойства Table2.

Добавьте некоторые связанные записи в свою БД в Таблицу 1 и Таблицу 2 и снова выполните свой запрос. Таблица 2 не DataSet или DataTable, но класс.

Я думаю, что событие .Include("Table2") является излишним, если вы используете .Include("Table2.Table4")

Обратите внимание, что Table2 должен иметь FK для Table1, если вы хотите один-ко-многим.

EDITED

Если вы используете EF вам не придется использовать присоединяется собирать данные из нескольких таблиц. Но вы должны четко определить FK. Вы просто используете var collction = table1.Table2, чтобы получить все объекты Table2, связанные с объектом table1.

+0

Есть внешние ключи для столов. Я хочу показать некоторые данные из этих таблиц. когда пользователь вводит данные для записи в таблице 1, он будет сохранен в таблице2. Таблица 1 имеет определения, а в таблице 2 будут данные для этих определений. – TurKorsaN

+0

Как я писал ранее, добавьте несколько записей в таблицу 1 и таблицу2 вручную и снова выполните запрос. – rraszewski

+0

О, я думал, как столы. Теперь я понимаю, как это происходит от сущности. просто коллекции. Должен ли я использовать объединения в ef для получения результатов так же, как запросы на соединение sql? – TurKorsaN