Принудительное использование одного или нескольких элементов в коллекции ICollection <> с помощью Entity Framework Code-First - PullRequest
0 голосов
/ 17 ноября 2011

Используя Entity Framework 4.1 Code-First, я установил отношение «многие ко многим», используя свободный API. Если возможно, я бы хотел, чтобы одна сторона отношения имела 1 или более другой, вместо значения по умолчанию 0 или более. В настоящее время, если таблицы A и B, A может иметь 0 или более B, а B может иметь 0 или более A, но я бы хотел, чтобы у A было хотя бы 1 B. Могу ли я сделать это в модели данных или сделать Я должен просто поместить это в бизнес-логику? Большое спасибо.

1 Ответ

0 голосов
/ 17 ноября 2011

Вы не можете определить это ограничение в модели.Возможно, потому что вы не можете определить соответствующее ограничение внешнего ключа в базе данных.Вы могли бы ввести дополнительную обязательную навигационную ссылку от A до B, чтобы гарантировать, что A всегда ссылается по крайней мере на один B. Тогда для таблицы A потребуется столбец внешнего ключа, который не может иметь значение NULL, для таблицы B.Но вам все равно пришлось проверить в бизнес-логике, что эта обязательная ссылка также является элементом в коллекции отношения «многие ко многим» (которое не применяется в базе данных: A (Id = 1) может ссылаться на B (Id =2) но в таблице соединений нет записи (1,2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...