Устранение неполадок ADO.NET Entity Framework и отношений 1:*
-
03-07-2019 - |
Вопрос
Я пытаюсь выполнить простую задачу по созданию базы данных с двумя таблицами со связью 1:*.
В одной таблице (Foos) у меня есть
Id
...
...
В другом (Барсе) у меня есть
Id
FooId
...
...
...
Я создал связь внешнего ключа от Bars до Foos, причем таблица внешних ключей представляет собой Bars, указывающую на столбец FooId, а таблица первичного ключа представляет собой Foos, указывающую на столбец Id.
Затем я создал свою модель данных ADO.NET Entity, и она правильно подобрала таблицы Foos и Bars, их связи и создала свойства навигации.
Теперь из моего приложения MVC я пытаюсь получить такой Foo:
var foo = (from f in _db.Foos where f.Id == id select f).FirstOrDefault();
Затем я пытаюсь получить доступ к свойству Bars объекта foo и не получаю никаких результатов.Однако, если я проверю набор _db.Bars, я увижу бары с FooId, установленным на правильный идентификатор.
Что мне следует сделать, чтобы устранить неполадки, почему отношения не работают?Я просмотрел множество руководств и документации в MSDN по связям между таблицами, но, очевидно, все в порядке.
Я пытаюсь использовать это в приложении ASP.NET MVC, если это актуально.
Решение
используйте включение в таблицу Foos
var foo = (из f в _db.Foos.Include("Bars") где f.Id == id select f).FirstOrDefault();