您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“LINQ查詢技術(shù)怎么使用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
LINQ TO SQL是LINQ技術(shù)在數(shù)據(jù)庫(kù)方面的應(yīng)用。數(shù)據(jù)庫(kù)技術(shù)從OLEDB,ODBC到ADO,在到ADO.NET到現(xiàn)在的LINQ TO SQL,讓程序員操作數(shù)據(jù)庫(kù)越來(lái)越簡(jiǎn)單。 LINQ 的宗旨就是讓查詢無(wú)處不再,這當(dāng)然要包括對(duì)數(shù)據(jù)庫(kù)的查詢。LINQ技術(shù)不僅僅可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,同樣CUID(Create,Update,Insert,Delete)都可以實(shí)現(xiàn),而且非常方便。
下面逐一對(duì)查詢以及增刪改方面進(jìn)行介紹
要想查詢數(shù)據(jù)庫(kù)中表的數(shù)據(jù),就要先建立對(duì)數(shù)據(jù)庫(kù)表的映射,就像要想使用ADO.NET就需要先把數(shù)據(jù)庫(kù)中的數(shù)據(jù)存到DataSet中,看一下代碼
[Table(Name = "Category")] public class Category ...{ [Column(IsPrimaryKey = true)] public string CategoryId; [Column] public string Name; [Column] public string Descn; }
以上就是對(duì)數(shù)據(jù)表的一個(gè)映射。使用的數(shù)據(jù)庫(kù)是SQL SERVER2000中自帶的數(shù)據(jù)庫(kù)Northwind。其實(shí)寫過(guò)C#的人也應(yīng)該能看懂上面的代碼。建立好對(duì)表的映射之后,就可以對(duì)其進(jìn)行相應(yīng)的操作了。
注意這里我們使用手工寫數(shù)據(jù)表的映射,其實(shí)MS為我們提供了相應(yīng)的自動(dòng)化工具SqlMetal,大家可以使用這個(gè)工具自動(dòng)產(chǎn)生對(duì)數(shù)據(jù)庫(kù)表映射的代碼,效率比較高,如果自己有什么需要改動(dòng)的地方還可以對(duì)產(chǎn)生的代碼進(jìn)行更改。
下面可以查詢了
DataContext db = new DataContext("Server=localhost;
Database=northwind;Trust_connection=true");//這里的連接字符串根據(jù)自己的配置進(jìn)行相應(yīng)更改即可
Table<Category> Categorys = db.GetTable<Category>();
var result =
from c in Categorys
select c;
//大家看到了DataContext就相當(dāng)于ADO.NET中的Connection,但是它提供了更強(qiáng)大功能
//其中result就相當(dāng)于IEnumerable<Category>如果不知道為什么會(huì)推出這個(gè)來(lái),
可以參考我原來(lái)寫的Lambda表達(dá)式那篇
//下面可以輸出result中的內(nèi)容
foreach(var c in result)
Console.WriteLine("CategoryId={0},Name={1},Descn={2}",
c.CategoryId,c.Name,c.Descn);
以上就是對(duì)數(shù)據(jù)庫(kù)的查詢,我們可以寫出很復(fù)雜的查詢來(lái),其實(shí)在內(nèi)部,LINQ技術(shù)會(huì)把你寫的LINQ語(yǔ)句,轉(zhuǎn)換成SQL語(yǔ)句送到數(shù)據(jù)庫(kù)中去執(zhí)行。然后返回相應(yīng)的結(jié)果。如果大家想看轉(zhuǎn)換后的SQL語(yǔ)句,可以在建立完連接之后加上這樣一句:db.Log=Console.Out。這樣程序?qū)⒆詣?dòng)輸出SQL語(yǔ)句和查詢結(jié)果.這里只是簡(jiǎn)單的介紹了一下如何查詢,我們知道表與表之間還有關(guān)系,這些復(fù)雜的東西我們以后在詳細(xì)說(shuō)明。
下面再來(lái)看看如何更改
//更改
string id = “DOGS";
var cat = db.Categories.Single(c => c. CategoryId == id);
cat. Name = “New Dogs";
//添加
Product p = new Product ...{ …….};
cat.Products.Add(p);
//刪除
string id = “DOGS";
var cat = db.Categories.Single(c => c. CategoryId == id);
db.Categories.Remove(cat)
//提交更改
db.SubmitChanges();
//注意, SubmiChanges() 完成了對(duì)象層到數(shù)據(jù)層的更改。
//也就說(shuō)不進(jìn)行提交,更改的結(jié)果不會(huì)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
“LINQ查詢技術(shù)怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。