我对 ASP.NET 中的 Entity Framework 有疑问。每当我将对象添加到数据库时,我都想获取 Id 值。我该怎么做?
根据 Entity Framework解决方案是:
using (var context = new EntityContext())
{
var customer = new Customer()
{
Name = "John"
};
context.Customers.Add(customer);
context.SaveChanges();
int id = customer.CustomerID;
}
这不会获取数据库表标识,但会获取实体的分配 ID,如果我们从表中删除一条记录,种子标识将与实体 ID 不匹配。
最佳答案
这很容易。如果您使用数据库生成的 ID(如 MS SQL 中的 IDENTITY
),您只需将实体添加到 ObjectSet
和相关 上的
。 SaveChanges
对象上下文Id
将自动为您填充:
using (var context = new MyContext())
{
context.MyEntities.Add(myNewObject);
context.SaveChanges();
int id = myNewObject.Id; // Yes it's here
}
当使用自动生成的 Id
时, Entity Framework 默认跟随每个 INSERT
和 SELECT SCOPE_IDENTITY()
。
关于c# - 如何使用 Entity Framework 检索插入实体的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212751/