Pregunta

Tengo un problema con LINQ a SQL InsertOnSubmit, que sólo parece funcionar para el primer elemento de una tabla.

Por ejemplo con la siguiente:

var noteDetail1 = new NoteDetail() { Title = "Test Note Title 1", NoteText = "Test note" };
var waiverDetail1 = new WaiverDetail() { Title = "Test Waiver Title 1", NoteText = "Test waiver details text" };
var riskDetail1 = new RiskDetail() { Title = "Test Risk Title 1", NoteText = "Test risk details text" };
context.Notes.InsertOnSubmit(noteDetail1);
context.Notes.InsertOnSubmit(riskDetail1);
context.Notes.InsertOnSubmit(waiverDetail1);
context.SubmitChanges();

solo me dan la primera entidad ( "Test Nota Título 1") se inserta en la base de datos. Si coloco un SubmitChanges después de cada InsertOnSubmit, todas las filas se insertan correctamente.

los tipos anteriores están todos hereda de una clase de nota, por lo que se insertan en la misma tabla.

Soy, sin embargo, experimenta el mismo problema con clases no derivada.

He pasado mucho tiempo buscando en esto, pero no puede encontrar lo que he hecho mal. La idea de InsertOnSubmit / SubmitChanges es por lo que se puede hacer varios cambios, así que debe ser algo simple que me falta.

¿Fue útil?

Solución

El problema era que tenía Iguales anulado en mis clases de entidad para que las entidades con el mismo ID se consideraron los mismos. Obviamente, LINQ a SQL está usando esto en algún momento y conseguir el resultado que todas las nuevas entidades son iguales (porque todos tienen el Id de 0).

Gracias por ser mi Jonathan "pato de goma" .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top