我在使用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
时使其正常工作?