У меня есть таблица, которая выглядит следующим образом:
TABLE Foo
{
Guid Id [PK],
int A [FK],
int B [FK],
int C [FK],
}
И уникальное ограничение для A, B и C.
Теперь, скажем, например, вы вставляете строку со свежим ПК с A = 1, B = 1, C = 1.
SubmitChanges()
, все счастливы.
Теперь вы редактируете таблицу.
Вы удаляете предыдущую запись и вставляете строку с новым номером PK с A = 1, B = 1, C = 1.
SubmitChanges()
БУМ! SQL-исключение ограничения уникального ключа.
Из того, что я вижу, он пытается сначала вставить новую запись, а затем попытаться удалить предыдущую. Я могу даже понять, что невозможно определить порядок, в котором это должно произойти.
Но что я могу с этим поделать? Было бы лучше сделать эти 3 поля составным ПК (и убрать старое) или это не сработает?
На данный момент «решением» является удаление уникальных ограничений из БД (но я не буду этого делать).