Отношение ноль-ко-многим с Linq to SQL - PullRequest
1 голос
/ 08 октября 2008

У меня есть класс пользователя, который может иметь или не иметь связанный отдел. На него ссылаются через внешний ключ DepartmentId, и соответствующее поле в таблице User установлено для разрешения пустых значений.

Когда я настраиваю форму «Создать пользователя» и не выбираю отдел, я получаю сообщение об ошибке конфликта на SubmitChanges ():

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_User_Department".

Как я могу убедить Linq в SQL вставить NULL, когда «Отдел» был выбран в качестве «пустой» первой опции?

Или, возможно, отсутствует ключевое слово для параметра "optionLabel" метода Html.DropDownList, который делает это? В настоящее время я использую «None», потому что использование NULL или «» не приводит к отображению «пустого параметра», и я подозреваю, что это может способствовать возникновению проблемы. Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 08 октября 2008

Я нашел менее желательное решение, добавив следующее в мой UsersController.Create метод:

// Snipped UpdateModel call
if (form["User.DepartmentId"].Length == 0)
{
    createdUser.DepartmentId = null;
}
Models.User.DataContext.SubmitChanges();

Конечно, я бы предпочел что-нибудь более чистое / автоматическое.

0 голосов
/ 08 октября 2008

У вас может быть запись "N / A" в отделе, которую вы назначаете, когда отдел не выбран. Тогда вы не получите конфликта внешних ключей.

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