在实体框架中 - 在调用"SaveChanges"之前,有没有办法在事务中检索新创建的ID(标识)?
我需要第二个插入的ID,但它总是返回0 ...
ObjectContext objectContext = ((IObjectContextAdapter)context).ObjectContext;
objectContext.Connection.Open();
using (var transaction = objectContext.Connection.BeginTransaction())
{
foreach (tblTest entity in saveItems)
{
this.context.Entry(entity).State = System.Data.EntityState.Added;
this.context.Set<tblTest>().Add(entity);
int testId = entity.TestID;
.... Add another item using testId
}
try
{
context.SaveChanges();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
objectContext.Connection.Close();
throw ex;
}
}
objectContext.Connection.Close();
Run Code Online (Sandbox Code Playgroud) 今天我注意到一个奇怪的事情,当我试图保存一个实体并在EF Core中返回它的id时
我正在考虑是否在调用saveChanges()之前,但它适用于具有类似设置的另一个实体.
ps:我使用工作单元来保存最后的所有更改.
是什么原因?