1.Linq相关

匿名类型: var data = new { name="小胡", age=27 }

      编译器根据表达式自动推断数据类型,节省脑力

 

自动属性: public string Name { get; set; }

      编译器自动生成字段,节省体力

 

Lambda表达式: (参数列表) => 函数体

      其实就是 匿名方法,简单且无需复用的方法就用它

 

Linq查询: (from 别名 in 集合 where (别名.集合元素 满足条件) Orderby 别名.集合元素 select 别名.集合元素).Skip(10).Take(10);
         或:  集合.Where(Lambda表达式).Select(Lambda表达式)

      where 是横向查询(过滤行), select 是纵向查询(过滤列)

      Orderby是排序, Skip(m)是跳过m条记录, Take(n)是取n条记录

     

相关查询语法:

      group 别名 by 别名.集合元素 into 分组后的新集合: 分组其实就是归类,将记录分类压缩

      查询结果.Distinct(): 重复的记录取一条

      (集合A).Union(集合B): 取两个集合的并集

      (集合A).Concat(集合B): 将两个集合合并

      (集合A).Intersect(集合B): 取两个集合的交集     

      (集合A).Except(集合B): 集合A - 集合B

 

DataContext: Linq和DataBase的桥梁

      1.通过Linq语法与数据库交互

      2.执行SQL语句

      3.以日志形式记录DataContext生成的SQL

 

延迟和预加载:

      IQueryable query = from 别名 in 集合 select 别名.字段;  

      (query只是一个SQL描述, 在运行时执行SQL语句, 即:得到数据是有延迟的)

      DataLoadOptions options = new DataLoadOptions();

      options.LoadWith<A>(p=>p.B);

      dataContext.LoadOptions = options;

      dataContext.A.First();

      (A和B是一对多的外键关系, Linq自动做一个左链接查询, 同时查出B, 即:预加载B的数据)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值