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

linq生成sql語句

發布時間: 2022-01-18 15:41:52

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

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

Ⅱ SQL語句轉化為Linq語句

分少點!回頭幫我的團隊打工償還吧!O(∩_∩)O哈哈~
-------------
我的表是Table_1s和Table_2s
linq 查詢如下:
from t in Table_1s
join f in Table_2s on t.B equals f.Key into FD
from f in FD.Where(b=>b.RowName=="B").DefaultIfEmpty()
join s in Table_2s on t.C equals s.Key into FDS
from s in FDS.Where(b=>b.RowName=="C").DefaultIfEmpty()
select new
{
A=t.A,
B=f.Value,
C=s.Value
}
---
對應sql如下:
-- Region Parameters
DECLARE @p0 NVarChar(1) SET @p0 = 'B'
DECLARE @p1 NVarChar(1) SET @p1 = 'C'
-- EndRegion
SELECT [t0].[A], [t1].[value] AS [B], [t2].[value] AS [C]
FROM [Table_1] AS [t0]
LEFT OUTER JOIN [Table_2] AS [t1] ON ([t1].[RowName] = @p0) AND ([t0].[B] = [t1].[key])
LEFT OUTER JOIN [Table_2] AS [t2] ON ([t2].[RowName] = @p1) AND ([t0].[C] = [t2].[key])
---
應該滿足你的要求!

Ⅲ 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 調試平台了。

Ⅳ linq 動態循環Concat,生成sql語句不正確

linq的效率不是這么算的,不過不說這個,query的查詢只有在數據第一次使用的時候才會執行,你使用的時候是在循環外。。。

Ⅳ 用linq to sql 把這個sql語句寫出來,感激不盡

from r in context.Role
order by r.RoleId
select new { r.RoleId,r.Role,ProNum = (from u in context.UserInfo select u where u.Role == r).Count() }

Ⅵ sql語句如下,請問用linq to sql 怎樣寫

http://blog.csdn.net/pan_junbiao/article/details/7015633

參考裡面的
7.嵌套類型形式

Ⅶ sql 語句轉linq語句

int? temp;
var result=from p in tb_aaa
where p.title.Substring(0,8)=="(2012)年第" && int.Tryparse(p.title.Substring(8,2),temp) && p.title.Substring(10,1) =="號"
select p;

第一個表達式和第三個表達式不說了,主要是第二個,判斷它是否可以轉為數字,用到了tryparse,所以需要一個外部的int來配合,純手寫,可能有寫大小寫或語法錯誤

Ⅷ c# LINq實現SQL

varresult=fromarrinsite_jwserver
grouparrbyarr.s_ipintog
selectnew
{
cont=g.Count(),
s_ip=g.Key
};

foreach(varvinresult)
//v.cont
//v.s_ip

Ⅸ 如何從Linq to Entities得到生成的T-SQL語句

如何從Linq to Entities得到生成的T-SQL語句
class Program
2 {
3 static void Main(string[] args)
4 {
5 BreakAwayEntities context = new BreakAwayEntities();
6 var query = from r in context.Reservations join p in context.Payments on r.ReservationID equals p.ReservationID select new { r.Customer, p.Reservation };
7 string sql = ((ObjectQuery)query).ToTraceString();
8 Console.WriteLine(sql);
9 Console.Read();
10 }
11 }

Ⅹ 如何把下面的執行查詢的sql語句轉化為linq to sql語句

我在SQL裡面測試了一下,@sql生成的sql語句是

selectYearMonth,[A]=sum(caseCodeAwhen'A'thenNumberelseNULLend),[B]=sum(caseCodeAwhen'B'thenNumberelseNULLend),[C]=sum(caseCodeAwhen'C'thenNumberelseNULLend)fromagroupbyYearMonth

而執行結果是