Todas mis entidades tienen Id de propiedad. Todas mis tablas en la base de datos tienen ID de identidad entero generado automáticamente como clave principal.Repositorio genérico de EF obtener Id de entidad genérica nueva insertada
Tengo un método genérico para crear entidades.
¿Hay alguna manera de obtener Id entidad después de la entidad insertada en la base de datos?
public override int Create<T>(T entity)
{
string entitySet = GetEntitySetName<T>();
_context.AddObject(entitySet, entity);
_context.SaveChanges();
return <Id Here>; //TODO Return Id here
}
En repositorio sencilla (no genérico) i puede simplemente volver Entity.Id, pero la forma de conseguir el mismo comportamiento en el repositorio genérico? Es posible que tenga una clase de entidad base para todas las entidades que contengan identificador de propiedad int, pero ¿hay alguna forma de que funcione sin implementar esta herencia?
¿Es posible obtener la identificación antes de llamar a savechanges? – Jeroen
@Jeroen Hay dos maneras de hacerlo: si desea utilizar int como PK en ese caso, primero debe insertar un registro vacío para obtener un nuevo ID generado por la base de datos, de lo contrario puede usar Guid como PK, en ese caso puede generar PK's directamente en su código llamando a Guid.NewGuid() – Kuncevic
por favor muestre cómo llamar a la función 'Create()' que devolverá el valor de PK. gracias –