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

linq輸出sql

發布時間: 2022-01-14 07:03:58

Ⅰ linq語句轉換成sql語句

linq語句呢?

Ⅱ c# LINq實現SQL

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

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

Ⅲ sql 語句轉成Linq to sql

說實話,你的sql似乎有問題。是否可以理解a與c都是outer表?
如果就按字面的要求,就是下面的:
var v = from c in EnterpriseInformation
from b in StateTax
from a in LandTax
where c.TaxCode==b.textCode || a.TaxCode ==c.TaxCode
select c;
但這個效率一定很低,可以改一下邏輯:
var v = (from c in EnterpriseInformation
join b in StateTax on c.TaxCode == b.textCode
into joinedtable
from g in joinedtable.DefaultIfEmpty()
select c)
.Union(
from c in EnterpriseInformation
join a in LandTax on a.TaxCode == c.TaxCode
into joinedtable
from g in joinedtable.DefaultIfEmpty()
select c);

Ⅳ 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產生的sql語句

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

Ⅵ linq的SQL操作

--閑話少說 代碼
EntityConnection econ = new EntityConnection();
econ.ConnectionString = econString;

EntityCommand ecmd = new EntityCommand();

ecmd.CommandType = CommandType.Text;

ecmd.Connection = econ;

ecmd.CommandText = "select it.ItemID,it.ItemMatter from myContext.DBItem as it";

econ.Open();
EntityDataReader eReader = ecmd.ExecuteReader(CommandBehavior.SequentialAccess);

while (eReader.Read())
{
Console.WriteLine("{0},{1}", eReader[0].ToString(), eReader[1].ToString());
}

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

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

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

而執行結果是

Ⅷ 如何查看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 把這個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() }

Ⅹ 如何查看linq生成的sql

linq使用對象的方式來操作資料庫。最後根本的還是生成原始的sql。但是對象的方式掩蓋了很多原本的sql面貌可能會是我們不明白對應的sql是什麼。還好linq可以輸出sql語句
DataClassesDataContext dc = new DataClassesDataContext();
這個對象提供的日誌功能。就是輸出對應的sql語句。在控制台應用程序下。使用dc.console(有誤)可以直接輸出顯示對應的sql語句。
在windonw和web程序下面可以建立一個txt文件日誌。把生成的sql記錄下來。代碼比較簡單了
DataClassesDataContext dc = new DataClassesDataContext();
StreamWriter sw = new StreamWriter(Server.MapPath("sqlLog.txt"), true); // Append
dc.Log = sw;
//然後是linq的相關數據操作

sw.Flush();
sw.Close();
就這樣對應的sql語句就記錄到sqlLog.txt文件中了。
我們可能會發現生成的sql在我們意料之外。呵呵。我的感覺是這樣