到底Linq對SQL做了什麼??



現在大部分人都使用linq+entity framework 去資料庫取得資料,但實際上在對資料庫存取SQL語法為何,確認大多數人並不了解的。

建議可以使用LINQPad 這套程式來去測試看看,避免不必要的語法造成資料的Lock,一個常用的資料表Lock會影響到其他作業的進行,甚至有可能造成TimeOut,而發出告警。

大家可以參考下列語法使用,針對select 部分,就不會去lock Table,也不會因為其他的資源lock 而造成TimeOut
c#
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required
, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted }))
{
使用到的linq 語法
<pre>
<code>}
</code>
</pre>

其中使用到的TransactionScopeOption列舉 可以參考 .NET Framework 類別庫說明

裡面有用到三種方式,如果要nolock 請使用Required,請參考下列圖示
TransactionScopeOption

希望大家不要再被linq 所產生的語法所困惱了~

Orignal From: [C#] 如何讓Linq + entity framework 可以達到with(nolock)

創作者介紹
創作者 Empty 的頭像
Empty

虎搞瞎搞

Empty 發表在 痞客邦 留言(0) 人氣()