Несколько связей с таблицами поиска в Entity Framework - PullRequest
1 голос
/ 09 сентября 2010

Контекст вопроса - ASP.NET MVC2 / EF4. У меня есть несколько таблиц подстановки в базе данных, на которые ранее были программные ссылки, каждая из ряда других таблиц ... Так что может быть таблица стран с шорткодом id страны, полдюжиной таблиц, которые Countryid в них. Повторите эти действия для 5 или 6 других справочных таблиц. На данный момент нет FK - поиск был программным в пользовательском интерфейсе старого интерфейса базы данных.

Еще одна вещь, о которой следует опасаться, это то, что у человека может быть страна. Человек может быть связан с работой, у которой также может быть страна. У этой работы есть работодатель с указанием страны (и так далее, и далее), т. Е. У нас получается довольно запутанный график.

По вопросу: я хотел бы иметь возможность получать информацию о стране в запросах EF / LINQ без объединений. Должен ли я сначала добавить несколько FK в базу данных? Я просто связываю эти отношения с дизайнером? На что (если нужно) нужно обращать внимание при наличии нескольких таблиц, связанных с одной и той же таблицей в EF? Будет ли это работать вообще?

Просто в основном ищу лучшую практику в этом.

1 Ответ

1 голос
/ 09 сентября 2010

Сначала создайте FK, обновите модель из базы данных в EF Designer.Это создаст ассоциации между вашими сущностями из отношений FK автоматически.

Это будет работать просто отлично.

Единственное предостережение в том, что EF соединит ваш граф в обоих направлениях, и это может вызвать проблемы,Например, вы создаете некоторый временный объект Person и устанавливаете для него Country в качестве существующего объекта Country.Если этот объект Country также является частью какого-либо другого объекта, который был изменен в текущем контексте, то при сохранении изменений ваш временный объект Person также может быть добавлен в базу данных!Построение графиков в EF иногда может быть слишком напряженным.

...