实体框架中没有事务的存储过程
本文关键字:事务 存储过程 框架 实体 | 更新日期: 2023-09-27 18:19:15
我正在调用实体框架6中的存储过程,该过程可以在必要时创建数据库和表。它抛出错误;
消息"CREATE DATABASE语句不允许在多语句事务中执行。在多语句事务中不允许使用nALTER DATABASE语句。'r'nDatabase 'CoreSnapshotJS3'不存在。请确保名称输入正确" string
我不希望它出现在事务中,并且已经使用这个来抑制事务
using (var transation = new TransactionScope(TransactionScopeOption.Suppress))
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("spCreateSnapshotFromQueue", snapshotQueueIDParameter);
}
仍然抛出错误。
如何停止自动事务?
我找到了一个方法:
var snapshotQueueIDParameter = new SqlParameter("SnapshotQueueID", entityId);
return _db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,
"EXEC spCreateSnapshotFromQueue @SnapshotQueueID", snapshotQueueIDParameter);