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 子句包括以下两个功能。
指定查询将采用的数据源
定义一个本地变量,表示数据源中的单个元素
from localVar in dataSource;

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类空间下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值