Entity Framework 4.0 - EF - слишком хорошо отображает отношения «многие ко многим» на диаграмме - PullRequest
1 голос
/ 07 ноября 2011

Извините, я не очень хорошо говорю на EF, просто настроив свой первый EF-проект. Я привык работать с Linq-to-SQL как способ избежать запросов SQL, и он хорошо работал с некоторыми веб-сервисами WCF, которые я использовал. Все это в Microsoft Visual Studio 2010.

Теперь на этом фоне я создал базу данных, используя Servr, которая имеет таблицы A и B в отношениях «многие ко многим» с таблицей C. Поскольку это недопустимо в теории баз данных, я создал таблицу связывания, как хорошо известно. Два из них: один с именем A_C, а другой с именем B_C, каждый из которых имеет внешний ключ (от 1 до многих) из таблиц A и B соответственно. Затем я связал таблицу C t с обеими этими таблицами связи, и эти таблицы связи получили внешний ключ от C. Так что теперь я в порядке, подумал я.

Поэтому я создаю модель данных сущности ADO.NET, используя мастер модели данных сущностей, я выбрал опцию «из существующей базы данных» и нажимал кнопки. К моему большому удивлению, и огорчению, и потрясению, и страху, я увидел ТОЛЬКО ТРИ ТАБЛИЦЫ: A, B и C! Нет ссылок на таблицы вообще. Они шутят?

Подумайте об этом на мгновение. Механизм, который запускает EF, выяснил, что таблицы A и B имеют отношение «многие ко многим» с таблицей C. На диаграмме схемы файла .edmx между звездочками A, B и C показаны звездочки, как и ожидалось. .

НО ТАБЛИЦЫ СВЯЗИ В СХЕМЕ НЕ ПОКАЗЫВАЮТСЯ! Какие? Это очень логично, я полагаю, не показывать таблицы ссылок ... но неожиданно.

Является ли это вашим опытом для тех, кто когда-либо имел отношения ко многим за столом?

Кстати, до того, как я нажал клавишу Send, я провел много исследований по EF 4.0, и мне кажется, что эта работа еще не завершена. Много подводных камней, в которые я, вероятно, попаду. Например, я намереваюсь развернуть это в решении REST WCF, которое использует веб-методы, которые работают с базой данных SQL Server. В прошлом я использовал Linq-to-SQL, и теперь я буду осторожно пытаться использовать Linq-to-Entities.

1 Ответ

1 голос
/ 07 ноября 2011

Это именно то, что должно произойти. И все три таблицы будут обновлены правильно.

...