當前位置:首頁 » 編程語言 » linq執行sql

linq執行sql

發布時間: 2024-12-14 09:10:46

⑴ 什麼是ling to sql

ling to sql 首先得先解釋 linq

LINQ = 語言集成查詢(Language INtegrated Query)
是一組用於c#和Visual Basic語言的擴展。它允許編寫C#或者Visual Basic代碼以查詢資料庫相同的方式操作內存數據。

舉個例子,比如你的C#代碼裡面,有個 Apple 對象,對象有 顏色這個屬性
當給你一個 Apple 類的列表,要你返回所有 顏色為紅色的。
如果沒有 LINQ 的話, 那麼就是 for 循環, 然後 if
使用 LINQ 的話, 就是有點像資料庫的 SQL 語句的寫法
var query =
from apple in appleList
where apple.Color == "紅色"
select apple;

關於 LINQ 的例子代碼:
http://hi..com/wangqing999/blog/item/40982215d2625371ca80c494.html

LINQ to SQL 呢?
就是首先是通過開發工具, 通過讀取資料庫中的表結構,來創建 C# / VB.NET 的代碼
比如你有個表 Test, 有2個欄位 id, value
那麼開發工具會產生一個類, 叫 Test. 這個類有2個屬性 id, value

然後你可以通過寫 LINQ 的方式, 來查詢資料庫裡面的數據。
var query =
from test in context.Test
select test;

關於 LINQ to SQL 的例子代碼:
http://hi..com/wangqing999/blog/item/143b63da8185904594ee37ee.html

⑵ 這兩段sql語句用linq語句怎麼寫

你的語句好像錯了,ON (OD.OrderID=OD.OrderID)這個應該是 ON (O.OrderID=OD.OrderID)

對於問題一,請參考這:

using (var db = new DataClasses1DataContext())
{
var list = from c in db.Customers
join o in db.Orders on c.CustomerID equals o.CustomerID
join od in db.Order_Details on o.OrderID equals od.OrderID
select new{c.Country,od};
var result = from d in list
group d by d.Country into g
orderby g.Sum(c => (c.od.UnitPrice * c.od.Quantity) * (1 - (decimal)c.od.Discount)) descending
select g.Key;
//result 即為最終想要的數據

}
對於問題二,請參考這:
using (var db = new DataClasses1DataContext())
{
foreach(var item in db.Order_Details.Where(c=>c.Procts.Categories.CategoryName=="Seafood"))
{
db.Order_Details.DeleteOnSubmit(item);
}
db.SubmitChanges();

}

⑶ LINQ TO SQL 有什麼優缺點啊

首先,在了解 LINQ To SQL 有什麼優點之前,我們有必要首先了解下,微軟為什麼弄了這么個東西。 搞出這個東西來有什麼目的:——當然是為了 滿足不知道怎麼操作數據的程序員開發設計的,並不是每個程序員 都會直接操作資料庫,LinQ 可以讓他們以一種面向數據對象的方式來思考,及持久化他們的數據!

好處: 容易學習,書寫簡單。 在開發 中小型 項目 的時候推薦使用!因為可以節省時間!
它可以很方便的調用 存儲過程、SQL函數

缺點:由於直接封裝了所有的數據持久操作。導致批量持久數據會產生效率問題
尤其體現在批量跟新數據,它會在內存中保持大量的數據模型。

總結:中小型 項目 就放心用吧! 不過從技術 儲備的角度來說,建議 看看entity framework

⑷ 哪位高手知道vs2010中的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在我們意料之外。呵呵。我的感覺是這樣

⑸ LINQ to SQL模型 是什麼意思

通過使用 LINQ to SQL,您可以使用 LINQ 技術訪問 SQL 資料庫,就像您訪問內存中的集合一樣。

例如,在下面的代碼中,創建了 nw 對象來表示 Northwind 資料庫,將 Customers 表作為目標,篩選出了來自 London 的 Customers 行,並選擇了一個表示 CompanyName 的字元串以進行檢索。

執行循環時,將檢索到 CompanyName 值的集合。

//NorthwndinheritsfromSystem.Data.Linq.DataContext.
Northwndnw=newNorthwnd(@"northwnd.mdf");
//or,
//Northwndnw=newNorthwnd("Database=Northwind;Server=server_name;IntegratedSecurity=SSPI");
varcompanyNameQuery=
fromcustinnw.Customers
wherecust.City=="London"
selectcust.CompanyName;
foreach(varcustomerincompanyNameQuery)
{
Console.WriteLine(customer);
}

我覺得詳細的介紹,你還是直接看MSDN:

http://msdn.microsoft.com/zh-cn/library/bb386976.aspx

熱點內容
騰訊雲雲伺服器登錄失敗 發布:2024-12-14 11:22:40 瀏覽:139
linux文件夾路徑 發布:2024-12-14 11:21:11 瀏覽:526
為什麼登錄個稅總說我密碼錯誤 發布:2024-12-14 11:11:59 瀏覽:626
紅米如何root安卓手機 發布:2024-12-14 11:06:08 瀏覽:593
access資料庫讀寫 發布:2024-12-14 11:06:05 瀏覽:908
安卓手機發燙是什麼引起的 發布:2024-12-14 11:03:15 瀏覽:735
三星安全文件夾里的文件在哪裡 發布:2024-12-14 11:01:03 瀏覽:355
伺服器如何做域名轉發 發布:2024-12-14 10:51:56 瀏覽:158
java對話框選擇 發布:2024-12-14 10:51:22 瀏覽:295
領主如何配置庄園 發布:2024-12-14 10:43:16 瀏覽:499