【发布时间】:2019-11-13 23:47:15
【问题描述】:
我在 EF Core 3 中使用 TransactionScope 时遇到问题。下面的代码在使用 Database.BeginTransaction 时可以正常工作,但在使用 TransactionScope 时不能正常工作。
下面的代码不起作用:
using (var ts = new TransactionScope(option, new TransactionOptions
{
Timeout = TransactionManager.MaximumTimeout,
IsolationLevel = isolation
}, TransactionScopeAsyncFlowOption.Enabled))
{
Context.Database.ExecuteSqlRaw("SET IDENTITY_INSERT ITEMS ON");
Context.Item.Add(item);
Context.SaveChanges();
}
我收到以下错误
当 IDENTITY_INSERT 设置为 OFF 时,无法为表“Items”中的标识列插入显式值。
此代码确实有效:
using(var ts = Context.Database.BeginTransaction())
{
Context.Database.ExecuteSqlRaw("SET IDENTITY_INSERT ITEMS ON");
Context.Item.Add(item);
Context.SaveChanges();
ts.Commit();
}
如何使它与TransactionScope 一起工作?
【问题讨论】:
标签: c# .net-core entity-framework-core