有没有什么方法可以修改所有或特定的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的行为。这失败了 - 我能找到的唯一钩子,即使我派生出来,也是用于修改保存更改。没有任何只读行为。
我还在调查周杰伦的建议。但我可能不知道我在做什么。
答案 0 :(得分:0)
如果您正在使用EFContextProvider,那么我不这么认为,因为Entity Framework不提供此功能。
但是,您可以拦截服务器上的事务处理以完成类似的操作。
看一下这篇文章:Entity Framework with NOLOCK