EF 5.0 WinForms Agregar nueva fila en DataGridView enlazado

Configuré un dgv vinculado a la entidad usando dbcontext. Funciona bien. Las filas se muestran en el dgv y puedo modificar celdas y actualizar usando SaveChanges. Sin embargo, si intento agregar una nueva fila en el dgv, no se guarda. Si el dgv está vinculado a la entidad, ¿no debería agregarse automáticamente la nueva fila o tengo que hacer algo para agregarla? ¿Qué? Proporcione un código de ejemplo. Voy a intentar eliminar de la dgv a continuación. ¿Tendré un problema similar? ¿Cómo podría hacer que eso funcione? Busqué ejemplos en Internet, pero se detienen en vincular las entidades y no incluyen la adición o eliminación. Cualquier ayuda sería apreciada.

preguntado el 03 de enero de 13 a las 19:01

2 Respuestas

Encontré un par de enlaces con un problema similar, uno de los cuales es:

La propiedad DataGridView AllowUserToAddRow no funciona

Parece que usar .ToList estropea el enlace. En mi caso, estaba usando MyContext.MyTable.Local.ToList como fuente. Cuando eliminé el .ToList todo funciona perfectamente. ¿Quizás alguien pueda decirnos con más detalle por qué funciona esto?

Gracias a aquellos de ustedes que encontraron esto primero.

contestado el 23 de mayo de 17 a las 12:05

Solución para .NET Framework 4

Intenté eliminar .ToList() pero luego simplemente no obtuve resultados.

Así que mi solución fue:

Para eliminaciones:
En el evento UserDeletingRow de la vista de cuadrícula de datos

// Get deleted entity:
myEntityType currentEntity = (myEntityType)BindingSource[e.Row.Index];

// Delete directly from context
context.myEntityType.Remove(currentEntity);

Para insertos:
En el botón Guardar, recorro el BindingSource y verifico si alguna entidad tiene una ID == 0 y luego AGREGAR cada una de ellas con context.MyEntityType.Add (currentEntity);

Respondido el 10 de enero de 14 a las 23:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.