实体框架 – 实体框架中的更改数据库6
我在我的代码中将EF更新为EF 6.0.2,我有以下代码行:
applicationDbContext.Database .ExecuteSqlCommand(@"ALTER DATABASE CURRENT SET RECOVERY FULL;"); 更新后,我收到以下错误信息:
我已经解决了一个TransactalBehavior的问题,如下面的代码: applicationDbContext.Database.ExecuteSqlCommand( TransactionalBehavior.DoNotEnsureTransaction,@"ALTER DATABASE CURRENT SET RECOVERY FULL;"); 我的问题: 为什么我会收到这个错误与EF 6? 任何帮助将不胜感激!? 解决方法EF 6更改了使用ExecuteSqlCommand的事务
EF 5的行为方式不一样.你的修复是适当的
var sqlCommand = String.Format("ALTER DATABASE {0} SET SINGLE_USER WITH ROLLBACK IMMEDIATE"); db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,sqlCommand); 通过使用DoNotEnsureTransaction标志,在执行命令之前,EF不会启动事务.这样可以使ALTER DATABASE命令成功执行. http://www.danbartram.com/entity-framework-6-and-executesqlcommand/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |