Estoy usando un formulario web MVC para insertar un registro en una base de datos con varios subregistros. En mi código subyacente, primero estoy creando un nuevo registro principal usando dataRepository.Add (xx). Ahora necesito agregar 5 subregistros que necesitan el ID del registro recién creado. ¿Cómo puedo recuperar eso?ASP.NET MVC Obtener ID del último registro agregado
Respuesta
xx Suponiendo es su modelo y su clave primaria es Id se puede obtener el ID de su registro insertado de esta manera:
// at this point xx.Id == null
db.XX.AddObject(xx);
db.SaveChanges();
// now: xx.Id > 0
int id = xx.Id;
Probablemente deberías enviar los 5 registros más el principal hasta tu capa de datos, realizando cualquier validación en el camino en tu capa de negocios. Luego, dependiendo de la implementación de su DL, guarde el registro principal, devuelva el ID, establezca el ID padre en los subregistros y guárdelos. Hazlo todo en una sola transacción y deberías estar bien.
Proporcione más información sobre su capa de acceso a datos.
Si usa el servidor MS SQL, debe usar Scope_Identity() dentro de su procedimiento almacenado para obtener el último valor de identidad insertado en una columna de identidad. Ver este MSDN article
Si se utiliza NHibernate se agregan dentro de la misma sesión y NHibernate se encarga de generar el SQL responsable de insertar los registros con los ID correcta.
Si está utilizando un ORM como Entity Framework, debe poder crear el registro y los registros asociados, vincularlos agregando los registros asociados en una colección en el objeto principal o configurarlos de alguna manera y luego llamar al guardar método en el contexto. Esto hará todos los enlaces con los identificadores, etc. para ti.
¿Cómo está haciendo acceso a los datos?
- 1. Obtener ID del último registro insertado en Oracle db
- 2. SqlAlchemy: obteniendo el id del último registro insertado
- 3. Cómo obtener el último registro
- 4. asp mvc obtener el último ID de inserción de savechanges()
- 5. Obtener la identificación del último registro insertado en mybatis
- 6. MySQL y Java - Obtener ID del último valor insertado (JDBC)
- 7. PHP Postgres: Obtener último inserto ID
- 8. ¿Cómo obtener el último registro de Sqlite?
- 9. Azure Table Storage obtener el último registro
- 10. Cómo obtener el último registro por grupo en SQL
- 11. DbContext ChangeTracker: Id del Agregado Entidad de Auditoría
- 12. asp.net MVC y $ .ajax sobrecarga de rendimiento agregado
- 13. Obtenga el último número de cheque (último ID del conjunto de cambios)
- 14. obtener nuevo ID de registro SQL
- 15. Windows Live ID en ASP.NET MVC
- 16. cliente Id de la Propiedad (ASP.Net MVC)
- 17. Errores de registro en ASP.NET MVC
- 18. Obteniendo la ID del registro recién insertado?
- 19. Fluido NHibernate obtener ID del objeto guardado
- 20. Obtener el último registro de cada mes en MySQL ...?
- 21. vb.net sql último ID insertado
- 22. Obtener MembershipUser en ASP.NET MVC
- 23. diseño del último registro en una tabla de datos jsf
- 24. Obtener último registro de una tabla en Postgres
- 25. ASP.net MVC obtener viewengine actual
- 26. obtener ID de sesión en ASP.Net
- 27. Obtener el último registro en un conjunto de consulta
- 28. ¿Cómo obtener el último registro indexado en Solr?
- 29. Obtener el ID del hilo
- 30. Obtener el nombre del equipo servidor en ASP.NET MVC?
cómo se implementa el repositorio de datos? Linq a las entidades? Linq a SQL? Conjuntos de datos escritos Necesita código – villecoder
¿No es MVC Webform un oxímoron? – Martin
Solo una observación: ¡No use archivos de código subyacente con ASP.NET MVC! – davehauser