Tengo una tabla que tiene el siguiente aspecto:Linq2SQL tratar con inserciones/eliminaciones en la mesa con restricciones únicas
TABLE Foo
{
Guid Id [PK],
int A [FK],
int B [FK],
int C [FK],
}
Y restricción única sobre A, B y C.
Ahora digamos por ejemplo, inserta una fila con un PK nuevo con A = 1, B = 1, C = 1.
SubmitChanges()
, todos contentos.
Ahora edita la tabla.
se quita la entrada anterior, e insertar una fila con una PK fresk con A = 1, B = 1, C = 1.
SubmitChanges()
BOOM! Exclusión de restricción de clave única de SQL.
Por lo que puedo ver, intenta insertar primero el nuevo registro, y luego tratar de eliminar el anterior. Incluso puedo entender que no es posible determinar el orden en que esto debe suceder.
Pero, ¿qué puedo hacer al respecto? ¿Sería una mejor solución hacer que esos 3 campos compuestos PK (y eliminar el anterior) o incluso funcionar?
Por ahora, la 'solución' es eliminar las restricciones únicas del DB (pero prefiero no hacerlo).
Lamentablemente no es tan fácil. La lista se mantiene a través de BindingList, obtenida de un EntitySet vinculado a un DataGridView. – leppie