asp mvc从savechanges获取最后一个插入ID()

时间:2011-02-24 11:08:09

标签: asp.net sql linq asp.net-mvc-3 entity-framework

我首先使用poco代码。如何在savechanges()之后获得最后一次插入?

感谢

5 个答案:

答案 0 :(得分:15)

我以这种方式解决了这个问题:

使用Max() - 您可以从表中获取最后一个ID

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

ProductId是Key()和增量

答案 1 :(得分:11)

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;

答案 2 :(得分:8)

在上下文中保存实体后(SaveChanges())。 poco本身的ID属性应该由实体框架设置。

如果您确实需要有关已修改实体的更多信息,可以在Entity Framework的ObjectContext提供的ObjectStateManager中查找它们。

答案 3 :(得分:3)

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

它会自动将其添加到您要保存的对象

答案 4 :(得分:0)

请参考以下示例-

db.Hotels.Add(hotels);
                db.SaveChanges();
                var id = hotels.Id;

对我有用。

来源-https://dzone.com/articles/how-return-id-field-after