Entity framework 实体框架4事务范围
我在一个函数中运行2个插入。第一个是非实体框架插入(AD0.NET)。第二个是EntityContext.SaveChanges() 我不能将这两个都嵌套在事务作用域中吗?可以Entity framework 实体框架4事务范围,entity-framework,transactions,scope,Entity Framework,Transactions,Scope,我在一个函数中运行2个插入。第一个是非实体框架插入(AD0.NET)。第二个是EntityContext.SaveChanges() 我不能将这两个都嵌套在事务作用域中吗?可以 using (TransactionScope scope = new TransactionScope()) { InsertRecord(); context.SaveChanges(); scope.Complete(); } 正如Eranga所说,这是完全可行的,尽管有些混乱 看 还应考
using (TransactionScope scope = new TransactionScope())
{
InsertRecord();
context.SaveChanges();
scope.Complete();
}
正如Eranga所说,这是完全可行的,尽管有些混乱 看 还应考虑为事务范围设置isolationlevel,例如
TransactionOptions options = new TransactionOptions();
options.IsolationLevel = IsolationLevel.Serializable;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
{
// Do something here
}
两个不同的数据库插入(两个不同的并发连接)将导致transactionscope升级为分布式事务。用于测试它将在有问题的机器之间工作
另外,不同的数据库有其自己的默认隔离级别,因此最好在代码中指定此级别,例如SQL Server Express默认使用可序列化,SQL Server(完整版本)则不使用 @Kvlive可以提供更多细节吗?