Ограничение проверки MS SQL Server 2008 и LINQ-To-SQL - PullRequest
0 голосов
/ 27 сентября 2010

Это сложный вопрос для слова ... так что терпите меня.

У меня есть две таблицы в моей базе данных, [Item] и [AssignedProperty].[AssignedProperty] - это ребенок в отношениях родитель-ребенок с [Item].Так что в основном это просто поле ItemID и отношение внешнего ключа, использующее его.[AssignedProperty] также имеет идентичные отношения с другой таблицей с именем [Property] и собственным первичным ключом AssignedPropertyID.Это создает хорошие отношения многие ко многим.Однако у меня есть ограничение, которое диктует, что один [AssignedProperty] не может иметь повторяющиеся вхождения ItemID и PropertyID в одной записи.Следовательно, [Item] может иметь только по одному из каждого [Property].

. Это хорошо работает, но с LINQ-To-SQL возникает проблема в том, что я считаю порядком выполнения, конфликтующим с этим ограничением.

Чтобы вызвать эту ошибку, я загружаю [Item] в свое приложение, используя LINQ-To-SQL.Затем я выбираю [AssignedProperty] объект] из коллекции [AssignedProperties] элемента и удаляю его.Затем я создаю новый объект [AssignedProperty] с точно такими же ItemID и PropertyID, что и только что удаленный, и добавляю его обратно в коллекцию.Когда я вызываю [SubmitChanges] в DataContext, он помечает меня в ограничении.Если старая запись [AssignedProperty] была удалена первой, то нет причины, по которой новая запись должна вызывать эту ошибку.Похоже, что он пытается вставить новый [AssignedProperty] перед удалением старого.

Как это исправить, и в базе данных, или в моем приложении?ТИА

1 Ответ

0 голосов
/ 07 января 2011

94% меня раздражают, и ответ на самом деле в комментариях к исходному сообщению.

Итак, я просто могу выбрать ответ.

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