2011-02-24 200 views

Respuesta

8

Después de guardar una entidad en el contexto SaveChanges (()). La propiedad de ID en el propio poco debe ser establecida por el marco de entidad.

Si realmente desea obtener más información acerca de las entidades modificadas, puede buscarlas en el ObjectStateManager provisto por ObjectContext de Entity Framework.

+0

tenía la impresión de que quería la última inserción desde una perspectiva de tabla global, ni una sola operación de guardado. Podría estar equivocado. – RPM1984

+0

Sí, ahora tengo la misma sensación. –

+0

He leído la pregunta un par de veces, y todavía siento que quiere saber el ID de la entidad que acaba de crear. – tkalve

13

resuelvo el problema de tal manera:

con Max() - se puede obtener la última Identificación de la mesa

db.Products.Add(product); 
db.SaveChanges(); 
int lastProductId = db.Products.Max(item => item.ProductId); 

ProductId es clave() y el incremento

+3

Esto dará un problema en un sistema multiusuario. Si otro usuario guarda un producto 1 milisegundo después de usted, obtendrá su número de identificación del producto, ya que será el número máximo en ese momento. Es una pequeña posibilidad, pero, sucederá! – alikuli

6
register = db.registers.CreateObject(); 
register.id = 0; 
register.customer = h.customer; 
register.employee = employee_created; 
register.created = DateTime.Now; 
db.registers.AddObject(register); 
db.SaveChanges(); 

//You can get the ID here 
int last_insert_id = register.id; 
+0

Esta debería ser la respuesta correcta – Kan

2
var newProduct = db.Product.Add(model); 
db.SaveChanges(); 
var productId = model.Id; 

Lo agrega automáticamente al objeto que está guardando

Cuestiones relacionadas