EF-實體框架和Linq(2)

1.LInq查詢,只要實現IEnumerable和IQueryable的都可以用Linq查詢,要使用Linq引用System.Linq,使用Linq to ado.net引用System.Data.Linq,還有xml引用system.xml .linq

from子句指定數據源

1.數據源是實現泛型接口IEnumerble<T>IQueryable<T>的類對象。
2.IEnumerble<T>可以簡單理解成一個包含多個元素的列表(或數據庫中的表),可以用foreach遍歷它的所有元素,從而輕鬆完成查詢操作。
3.每個Linq查詢都以from字句開始,from子句包括以下兩個功能。
指定查詢將採用的數據源
定義一個本地變量,表示數據源中的單個元素
fromlocalVar indataSource;

where子句指定篩選條件

格式where expression

示例

    int[]ary = { 1, 6, 98, 15, 30, 60 };

            varq1 = fromv1 in ary wherev1 > 15 selectv1;

            varq2 = fromv2 in ary where(v2 > 10) && (v2 < 40)

  select v2;

            varq3 = fromv3 in ary where(v3> 10) || (v3 <40)

  select v3;


下面顯示Linq中信息



用orderby排序


格式orderbyexpression [sortType]

element:是要進行排序的字段,它可以是數據源中的元素,也可以是對元素的操作結果。
sortType:可選參數,表示排序類型,包括升序(ascending)和降序(descending)兩個可選值

示例

    int[]ary = { 1, 6, 98, 15, 30, 60 };

            var q1 = fromv1 inary orderbyv1 selectv1;

            foreach (varqi1 inq1)

                 Console.Write("{0} ",qi1);

      varq2 = fromv2 inary orderbyv2 descending

  selectv2;

   var q3 = from st in stAry

         orderby st.Name.Length ascending,st.Agedescending

                     select st;



用group查詢分組





至於join請看《精通C#5.0與.NET4.5高級編程__LINQ、WCF、WPF和WF-PDF電子書下載 帶書籤目錄 完整版.pdf》
基於Linq的表達式查詢

2.Linq 查詢方法
在Linq中數據源和查詢結果都是IEnumrable<T>泛型接口和IQueryable<T>泛型接口,是對象,對象都有方法和屬性






具體例子請參考精通C#5.0中或者具體方法

Skip基於具體數字,二SkipWhile是基於表達式的
具體說一下Skip和Take的作用
//分頁,分頁大小4,分頁索引2,跳過前面8條,獲取後面4條
            var ti = me.User.Skip(8).Take(4);

幾個的交集union 並集Intersed 差集except,concat連接兩個元素

public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> sourceFunc<TSource, bool> predicate);
public staitc IEnumErable<TSource>Where(this IEnumrable<TSource> source,Func<TSource,int ,bool> predicate;

public delegate TResult Func<T1,T2,TResult> (T1 arg1,T2 atg2);//定義的泛型委託,泛型委託可以傳一個函數也可以傳一個拉姆表達式,有兩個重載

OrderBy和OrderByDescending一樣,重載中的一個參數是ICompare<TKey>


這兩個都是擴展方法,在靜態類Enumrable類空間下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章