NoLock使用Breeze Queries在SQl服务器上查询

时间:2014-01-22 09:18:29

标签: breeze

有没有什么方法可以修改所有或特定的Breeze查询来查询NoLock?

到目前为止,我尝试了两种方法。

第一种方法包括从BreezeConfig派生 - 类似于 https://github.com/IdeaBlade/Breeze/blob/master/_Internal/Sample_WebApi/Controllers/BreezeConfig.cs

然后按如下方式覆盖GetTransactionSettings,希望所有查询现在都被事务包装。

    public override TransactionSettings GetTransactionSettings()
    {
        var settings = base.GetTransactionSettings();
        settings.TransactionType = TransactionType.TransactionScope;
        settings.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
        return settings;
    }

Sql profiler向我显示我的读取未包含在事务中:/

我尝试的第二种方法是修改EFContextProvider的行为。这失败了 - 我能找到的唯一钩子,即使我派生出来,也是用于修改保存更改。没有任何只读行为。

我还在调查周杰伦的建议。但我可能不知道我在做什么。

1 个答案:

答案 0 :(得分:0)

如果您正在使用EFContextProvider,那么我不这么认为,因为Entity Framework不提供此功能。

但是,您可以拦截服务器上的事务处理以完成类似的操作。

看一下这篇文章:Entity Framework with NOLOCK