Как Entity Framework сообщает, следует ли использовать в отношениях кратность "один" или "ноль или один"?
Я программно создаю файл edmx как часть нашего процесса генерации кода, и я хотел бы знать, как дизайнер решает использовать "1" или "0..1" для отношений, когда вы "Обновляете модель из базы данных". Любое понимание этого? Спасибо
Редактировать:
Хорошо, я думаю, что он использует "0..1", когда сторона "много" является внешним ключом, допускающим обнуляемость, и "1", если он не обнуляемый. Кто-нибудь может это подтвердить?
2 ответа
Да, установка "0..1" или "1" для роли "Родительское отношение" зависит от того, является ли столбец обнуляемым или нет.
Не забывайте, что если отношение построено на части столбцов первичного ключа из обеих таблиц (связь 1 к 1), то количество элементов будет от 1 (родительский) до 0..1 (дочерний).
Если вы разрабатываете новый инструмент для генерации edmx, мы рекомендуем вам как можно больше экспериментировать и анализировать. Мы разработали инструмент времени разработки для создания и редактирования моделей Entity Framework и LINQ to SQL с дальнейшей генерацией кода для Oracle, MySQL, PostgreSQL, SQL Server и SQLite для наших клиентов. С SQL Server проблем не было, потому что Entity Framework изначально разрабатывался поверх него, но другие базы данных выявили некоторые трудности. Было даже впечатление, что некоторые особенности базы данных Oracle, например, вообще не учитывались.
Ваше редактирование на месте. EF обнаруживает это на основании того, является ли поле обнуляемым.