Asp.net asp mvc从savechanges()获取最后一个插入id
我先用poco代码。如何获取savechanges()之后的最后一次插入Asp.net asp mvc从savechanges()获取最后一个插入id,asp.net,sql,linq,asp.net-mvc-3,entity-framework,Asp.net,Sql,Linq,Asp.net Mvc 3,Entity Framework,我先用poco代码。如何获取savechanges()之后的最后一次插入 在上下文(SaveChanges())中保存实体后,谢谢。poco本身的ID属性应由实体框架设置 如果您确实需要有关修改实体的更多信息,可以在实体框架的ObjectContext提供的ObjectStateManager中查找它们 我以以下方式解决该问题: 使用Max()-可以从表中获取最后一个id db.Products.Add(product); db.SaveChanges(); int lastProductId
在上下文(SaveChanges())中保存实体后,谢谢。poco本身的ID属性应由实体框架设置
如果您确实需要有关修改实体的更多信息,可以在实体框架的ObjectContext提供的ObjectStateManager中查找它们 我以以下方式解决该问题: 使用Max()-可以从表中获取最后一个id
db.Products.Add(product);
db.SaveChanges();
int lastProductId = db.Products.Max(item => item.ProductId);
ProductId是Key()和increment
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;
它会自动将其添加到要保存的对象中请参阅以下示例-
db.Hotels.Add(hotels);
db.SaveChanges();
var id = hotels.Id;
这对我有用
Source-我觉得他希望最后一次插入是从全局表的角度进行的,而不是一次保存操作。我可能错了。是的,我现在也有同样的感觉。我已经读了好几遍这个问题,我仍然觉得他想知道刚刚创建的实体的ID。@J.Tihon entity framework将设置实体本身的ID,但是如果POCO映射到实体,那么POCO将不会被更新。我认为问题在于如何从更新的实体更新POCO。您试图实现什么?这将在多用户系统中产生问题。如果其他用户在您之后1毫秒保存产品,您将获得他的产品Id号,因为它将是当时的最大编号。这是一个小机会,但它会发生!
db.Hotels.Add(hotels);
db.SaveChanges();
var id = hotels.Id;