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

Fou*_*der 7 c# entity-framework transactions transactionscope

我正在调用Entity Framework 6中的存储过程,如果需要,可以创建数据库和表.它抛出了错误;

消息"多语句事务中不允许CREATE DATABASE语句.\ r \n多语句事务中不允许使用DATABASE语句.\ r \n数据库'CoreSnapshotJS3'不存在.请确保正确输入名称." 串

我不希望它在一个事务中,并使用它来压制事务

using (var transation = new TransactionScope(TransactionScopeOption.Suppress))
{
    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("spCreateSnapshotFromQueue", snapshotQueueIDParameter);    
}
Run Code Online (Sandbox Code Playgroud)

它仍然会抛出错误.

如何停止自动交易?

Fou*_*der 23

我找到了一个方法:

var snapshotQueueIDParameter = new SqlParameter("SnapshotQueueID", entityId);
return _db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,
        "EXEC spCreateSnapshotFromQueue @SnapshotQueueID", snapshotQueueIDParameter);
Run Code Online (Sandbox Code Playgroud)