2014-01-22 150 views
0

有沒有什麼方法可以修改全部或特定的Breeze查詢以使用NoLock查詢?使用Breeze查詢在SQl服務器上進行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事件探查器顯示我,我讀不裹交易:/

我想第二個辦法是修改EFContextProvider的行爲。這失敗了 - 即使我推導出,唯一可以找到的鉤子用於修改保存更改。沒有隻讀行爲。

我仍在調查周杰倫的建議。但我可能不知道我在做什麼。

回答

0

如果您使用EFContextProvider,那麼我不這麼認爲,因爲實體框架不提供此功能。

但是,您可以攔截服務器上的事務處理來完成類似的事情。

看看這篇文章:Entity Framework with NOLOCK

+0

看到我上面修改的問題。 – AGhosT