Я пытаюсь создать модифицированную систему ролей, которая имеет следующую структуру классов / отношений:
Проект
ProjectRole
Сотрудник
где
ProjectEmployee сопоставляет три объекта вместе.
У меня есть сопоставление «один ко многим» из Project в ProjectEmployee и сопоставление ссылок из ProjectEmployee в Project.
Я могу добавить новый ProjectEmployee просто отлично (что означает, что мои действия по созданию тоже хороши), но я хочу ограничить отношения, чтобы иметь только одну запись на сотрудника. Это влияет на логику моих обновлений.
При совместном взломе я пытаюсь очистить Project.ProjectEmployees (установив значение в новый список), а затем добавляю новый экземпляр ProjectEmployee с соответствующей ролью и т. Д.
При этом я получаю сообщение об ошибке, связанное с установкой Project.ProjectEmployees в пустой список.
"Невозможно вставить значение NULL в столбец 'ProjectId', таблица 'AppDB.dbo.ProjectEmployees'; столбец не допускает нулевые значения. UPDATE не выполняется.
Заявление было прекращено. "
Если я удаляю строку, в которой сообщается о новостях в Списке, добавляются последующие записи, но затем я смотрю на слишком много записей на сотрудника.
Вот мой проект -> Отображение ProjectEmployees:
mapping.HasMany<ProjectEmployee>(x => x.ProjectEmployees)
.Cascade.All()
.WithKeyColumn("ProjectId");
И отображение в ProjectEmployee -> Project:
mapping.References(x => x.Project, "ProjectId");
Должно быть просто так?
Для чего бы то ни было, я также добавил в свой класс Project метод AddProjectEmployee, который ищет нужного сотрудника, удаляет его ProjectEmployee, если он существует, затем добавляет новый ProjectEmployee. Я получаю ту же ошибку при вызове этого.
Буду признателен за любую помощь.
Ник