當前位置:首頁 » 編程語言 » 查看linq生成的sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

查看linq生成的sql

發布時間: 2022-07-18 00:50:09

㈠ C#中LINQ怎麼生成下面那條sql

通常有三種常用的方法用來追蹤由 LINQ To SQL 提供器生成的 SQL 命令:用 DataContext.log ,用 DataContext.GetCommand ,和用 LINQ To SQL 調試平台。
1) 用 DataContext.log
這句代碼可以使生成的 SQL 顯示在控制台窗口。這個 SQL 可以是查詢,插入,更新和刪除命令。
=======================================================
db.Log = Console.Out;
=======================================================
附加參考:
http://msdn.microsoft.com/en-us/library/bb386961.aspx
2) 用 DataContext.GetCommand
這個方法提供了有關 LINQ To SQL 生成的 SQL 命令的相關信息,但是它僅僅是獲取方法而不影響 DataContext 的狀態。請注意以下事項(引自 MSDN 文檔):
· 參數必須非空,否則會拋出一個空參數異常。
· 正常的 LINQ 查詢轉換為 SQL 查詢執行拋出異常的申請不能被轉換。
· 只有以一個查詢命令返回。特別是額外的命令,這是渴望載入命令,不包括在內。
· DataContext 不跟蹤用戶處理的命令,例如從返回的命令執行的結果不會被追蹤,從而不影響 DataContext 的狀態。
下面的示例顯示 SQL 命令生成的控制台窗口中的 LINQ To SQL 查詢。
======================================================
MyDataContextdb = new MyDataContext();
var query = from d in db.Departments select d;
DbCommand dc = db.GetCommand(q);
Console.WriteLine(dc.CommandText);
=======================================================
附加參考:
http://msdn.microsoft.com/en-us/library/bb882652.aspx

3) 用 LINQ To SQL 調試平台
LINQ To SQL 調試平台通過看見在 Visual Studio 調試平台 生成的 SQL 可以幫助我們調試 LINQ to SQL IQueryable<> 查詢語句。我們也可以在平台上執行生成的 SQL 語句來檢查返回值。
要安裝 LINQ to SQL 調試平台,請按照以下步驟:
a) 下載 LINQ to SQL Visualizer.zip 壓縮包在 這兒 。
b) 關閉正在與性的各種版本的 visual studio 2008 。
c) 從 .zip 壓縮包的 /bin/debug/ 路徑復制 SqlServerQueryVisualizer.dll 程序集到本地路徑 /Program Files/Microsoft Visual Studio9.0/Common7/Packages/Debugger/Visualizers/ 。
d) 再次啟動 Visual Studio2008 。現在我們就可以用 LINQ to SQL 調試平台了。

㈡ c#linq 中怎麼可視化查看資料庫

在這一步中,我們會: • 生成一個控制台程序 • 生成一個LINQ to SQL類 • 測試連接後台資料庫並讀取信息In this task, we will • Create a console application

㈢ 怎麼查看linq產生的sql語句

最近在使用Linq To SQL的時候,為了了解不同Linq語句對性能造成的不同影響,需要獲得Linq To SQL輸出SQL語句。
如果是在桌面程序中,只需要
_context.Log = Console.Out; 即可Linq To SQL輸出SQL語句。

㈣ 如何查看LINQ執行的SQL語句

如果你的sql server 不是express版本的話,用sql server 的sql server profile ;
工具=>sql server profile 新建跟蹤,可以監視到所有的sql
還可看到IO操作,及執行時間

㈤ 如何查看linq生成的sql

如何查看linq生成的sql
class table
{
public string id
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<table> ls = new List<table>();
for (int i = 0; i < 10; i++)
ls.Add(new table );

int pageSize = 3;
int currentPage = 2;

var linq = (from t in ls.ToArray()
where
(from t2 in ls.ToArray() select t2.id).Take(pageSize * (currentPage - 1)).ToArray().Contains(t.id) == false
select t).Take(pageSize);

foreach (var l in linq)
this.Title += l.id + ",";
}

㈥ 如何查看Linq to SQL運行時,實際執行的Sql語句

調試Linq to sql代碼是, 如果遇到錯誤,很難判斷錯誤的原因是什麼,如果能夠輸出實際執行的sql原文,對於我們尋找錯誤的原因有有很大幫助。

以下是我用到的方法:

StringBuilder sql = new StringBuilder();
try
{
using (var context = new DataContext())
{
context.Log = new System.IO.StringWriter(sql);
context.SubmitChanges();
}
}
finally
{
sql.ToString();
}

㈦ LINQ to SQL 和一般的查詢語句怎麼什麼區別

linq是面向對象的sql。也就是說,sql是向關系型資料庫的查詢,而linq實際上是對內存里的數據的查詢。
雖然linq原來是對象查詢,但經過ms的努力,可以通過表達式分析與實體到關系的映射(linq
to
sql),把linq轉換為sql語句或是對xml的查詢(linq
to
xml)。
因此,這種技術就成了對象到資料庫記錄的一個方便的映射、轉化與操作的工具,你再也不必去去根據不同的情況用字元串拼接的辦法生成sql,而是專心於對象模型的處理即可,你對於對象的修改最終都會被轉換為對應的update,
insert,
delete等sql語句,在你submit時全部提交到資料庫中。
綜爾言之,linq
to
sql是一個資料庫到對象結構的一個中間層,
他把對關系數據的管理轉變為對象的操作,屏蔽了麻煩的sql,而且,還可以得到vs強大的智能感知功能的幫助。