Реализация отношения один к нулю или один в SQL Server

Я использую первый подход к базе данных Entity Framework 4.1. Я использовал устаревшую базу данных. В моем edmx-файла, который создал классы сущностей на основе таблиц в устаревшей базе данных, есть один-ноль-или-один связь между некоторыми сущностями.

хотя я исследовал таблицы базы данных и связи между ними я не нашел, как один-ноль-или-один отношение было реализовано в базе данных.

для получения дополнительной информации я положил скриншоты моей схемы базы данных и свойства ее отношения и соответствующих сущностей в файле edmx:

enter image description hereenter image description here

2 ответов


В 1-0..1 отношение в базе данных отображается непосредственно. Он построен между таблицами Course и OnlineCourse, где курс является основным в отношении (1), а OnlineCourse зависит от FK, настроенного на CourseID. FK также является PK OnlineCourse = он должен быть уникальным и из-за этого равен 0..1.


Если таблицы базы данных уже разработаны с отношением 1:1 (или 1:0-1), то EF будет работать с ним просто отлично, хотя он будет множественным именем дочерней таблицы (если вы позволите ему множественным).

основной подход заключается в создании внешнего ключа (как если бы вы делали 1:многим), то поставьте уникальный индекс на поле внешнего ключа. Это то, чего вы хотите достичь?

Это тоже может помочь:проектированием 1:1 и 1:m отношения в SQL Server .

на стороне Примечания, 1-1 отношения часто не являются необходимыми и / или симптомом дизайна базы данных, который нуждается в переосмыслении. Однако, похоже, вы унаследовали дизайн... Я все об этом знаю!