Linq to sql基礎總結
Linq to sql有很多值得學習的地方,這里我們主要介紹Linq to sql基礎,包括介紹什么是Linq to sql等方面。
什么是Linq to sql
Linq to sql(或者叫DLINQ)是LINQ(.NET語言集成查詢)的一部分,全稱基于關系數據的 .NET 語言集成查詢,用于以對象形式管理關系數據,并提供了豐富的查詢功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等組成了強大的LINQ。
要學好LINQ查詢語法,就不得不先理解C# 3.0的一些新特性,下面一一簡單介紹。
Linq to sql基礎之隱含類型局部變量
- var age = 26;
- var username = "zhuye";
- var userlist = new [] {"a","b","c"};
- foreach(var user in userlist)
- Console.WriteLine(user);
純粹給懶人用的var關鍵字,告訴編譯器(對于CLR來說,它是不會知道你是否使用了var,苦力是編譯器出的),你自己推斷它的類型吧,我不管了。但是既然讓編譯器推斷類型就必須聲明的時候賦值,而且不能是null值。注意,這只能用于局部變量,用于字段是不可以的。
Linq to sql基礎之匿名類型
- var data = new {username = "zhuye",age = 26};
- Console.WriteLine("username:{0} age:{1}", data.username, data.age);
匿名類型允許開發人員定義行內類型,無須顯式定義類型。常和var配合使用,var用于聲明匿名類型。定義一個臨時的匿名類型在LINQ查詢句法中非常常見,我們可以很方便的實現對象的轉換和投影。
Linq to sql基礎之擴展方法
- public static class helper
- {
- public static string MD5Hash(this string s)
- {
- return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s,"MD5");
- }
- public static bool In(this object o, IEnumerable b)
- {
- foreach(object obj in b)
- {
- if(obj==o)
- return true;
- }
- return false;
- }
- }
- //調用擴展方法
- Console.WriteLine("123456".MD5Hash());
- Console.WriteLine("1".In(new[]{"1","2","3"}));
很多時候我們需要對CLR類型進行一些操作,苦于無法擴展CLR類型的方法,只能創建一些helper方法,或者生成子類。擴展方法使得這些需求得意實現,同時也是實現LINQ的基礎。定義擴展方法需要注意,只能在靜態類中定義并且是靜態方法,如果擴展方法名和原有方法名發生沖突,那么擴展方法將失效。
【編輯推薦】