实体框架中没有事务的存储过程

本文关键字:事务 存储过程 框架 实体 | 更新日期: 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);