2012-12-07 4 views
1

Я пытаюсь оправдать использование EntityFramework и падать в самый первый барьер. Я использую первый подход к базе данных. Вот как это выглядит в SQL Server 2008 R2:Entity Framework 5 Отсутствующие ассоциации

db diagram

Как вы можете видеть, очень простой домен. Ассоциация является отношением «один ко многим» между User.Id и Blog.UserId.

Однако, даже с этим невероятно простым доменом, EF терпит неудачу. Когда я импортировать таблицы, я получаю это:

EF model

Как вы можете видеть, что нет никакой связи. Отношения исчезли и независимо от того, сколько раз я удаляю, восстанавливаю, он не появится. «Включить столбцы внешнего ключа в модели».

Однако, если я создаю таблицы, основанные на ключах, основанных на int вместо GUID, отношения создаются.

Это ошибка, ограничение или моя собственная глупость?

Это не вдохновляет мою уверенность. Как он будет работать в реальном сценарии, со сто таблиц и тысячи ассоциаций?

  • VS 2012
  • SQL Server 2008 R2
  • EF 5
+0

Стоит отметить, что Linq-To-Sql получает это право. Ассоциация обнаруживается и отображается идеально. Что происходит? – SimonGoldstone

ответ

6

Я решить эту проблему. Проблема была вызвана индексом изгоев, который я не знал, что был на столе.

Если есть индекс UNIQUE в том же поле, что и первичный ключ, это приведет к тому, что EF не сгенерирует отношения PK-FK вообще.

Просто удалив ненужный уникальный индекс (первичный принудительный запуск в любом случае), дизайнер EF немедленно подобрал отношения.

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