將LINQ to SQL的log信息發送到debug輸出窗口

發表于:2008-05-07來源:作者:點擊數: 標簽:sqlSQLSqldebuglog
當你在項目中使用LINQ to SQL的時候, 有一個事情是必須要非常注意的, 那就是要關心一下LINQ to SQL幫你生成的SQL語句, 尤其在你還不是非常熟悉LINQ to SQL的語法, API以及一些Tricks的時候, 這點是非常重要的, 否則一個低效的應用程序可能就要在你手下誕生了.
當你在項目中使用LINQ to SQL的時候, 有一個事情是必須要非常注意的, 那就是要關心一下LINQ to SQL幫你生成的SQL語句, 尤其在你還不是非常熟悉LINQ to SQL的語法, API以及一些Tricks的時候, 這點是非常重要的, 否則一個低效的應用程序可能就要在你手下誕生了.

  有幾種辦法可以跟蹤這些SQL語句:

  1. DataContext本身有提供Log屬性來將LINQ to SQL生成的SQL語句格式化并輸出到控制臺窗口, 通常是這樣:
DataContextInstance.Log = Console.Out;
  這個用法對于控制臺, Winform應用程序沒有問題, 但對于ASP.NET這類的非控制臺應用程序不起作用

  2. 使用SQL Profiler來偵測SQL語句, 這個做法通用于任何的應用程序, 實際上也是一個必須要了解的跟蹤手段, 當性能真正出現問題是, 這可是個不可少的利器之一.

  3. SQL Profiler雖然好用, 但是對于開發階段你可能不會想去了解那么多的細節, 例如SQL語句的執行情況, CPU耗費時間等等, 尤其是剛開始學習LINQ to SQL的時候, 由于對語法的不熟悉, 可能更多的時候是關心如何用LINQ to SQL的API構造出你想要的SQL語句, 例如到底API映射成了inner join還是left join, 到底執行了多少次的sql, 當你關心這個的時候, 如果要是能將Log信息直接發送到Debug的輸出窗口, 那該多方便啊. Kris Vandermotten 已經創建好了一個這個工具類, 你只要使用這樣的語法:
MyDataContext db = new MyDataContext(); db.Log = new DebuggerWriter();
  就可以在啟動Debug調試的時候將Log信息發送到Debug的output窗口了, 非常方便, 強力推薦你使用.

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97