11、Linq的使用
一、种类
1.Linq to Objects,实现了IEnumerable<T>集合对象的集成查询
2.Linq to sql,针对关系数据库MSSQL的解释查询
3.Linq to Entities,通过实体数据模型,支持多个数据库的Linq
4.Linq to XML,针对XML文档的集成查询
二、λ表达式
1、形式
(1)一个参数+一条语句/c#表达式:参数 = > C# 表达式
(2)一个参数+一条或多条语句:参数 = > { 处理语句 }
(3)多个参数:(参数1,参数2,……参数n) => { 处理语句 }
(4)无参数:() = > { 处理语句 }
可以将表达式赋给委托对象:
delegate int myDelegate(int i );
myDelegate dobj = s => { return s * s; };
//或返回值就是表达式结果
myDelegate dobj1 = s => s * s;
具体使用参考:18、(番外)匿名方法+lambda表达式
2、查询语法:
1)在list集合中的使用:
如果是用匿名方法来查询某条信息:
List<string> names = new List<string>() { "李", "王" };
List<string> lnames = names.FindAll(delegate(string s) { return s[] == '李'; });//查询第一个字是李的集合
改为lambda表达式来查询,就可以省略return和委托字段:
List<string> lnames1 = names.FindAll(s => s[] == '李');
调用方法:集合.Where().Orderby.Select()……
a.where 只接受一个输入序列和一个谓词作为参数,返回一个结果续集
b.orderby(n=>n) 调用自身,orderby(n=>n.Length)调用长度……可以按长度或按字母顺序对数组进行排序
c.select 投影
3、查询表达式:以from开头,以select或group结束。
1)基本形式:
var 结果集= from 元素变量 in 数据源 select 元素或元素属性
2)有where子句的形式:
var 结果集= from 元素变量 in 数据源 where 布尔表达式 select 元素或元素属性
例:
var bi = from b in names where b.GetType() == typeof(string) select b;
3)into:在 select 或 group 子句后,用“into 变量名”开始新的查询(相当于把一个查询结果放入表里在对表进行操作)
let:直接引入一个新变量,在select 子句前 (let 变量名= ……)
三、Linq to Objects
1、投影输出多个标量元素
select new ProjectionItem{ Name = s.name,Age = s.age }
//表示投影s对象的两个字段,创建ProjectionItem的对象(可匿名),s.name和s.age为字段值,也可以自行拓展字符串
2、运算符等(略)
四、Linq to sql
1、需要先创建 DataContext 对象连接数据库:
var content = new DataContext(connection);
2、调用 GetTable 来获得查询对象
Table<Student> students = content.GetTable<students>();
3、执行查询(略)
4、用 content.SubmitChanges() 把修改保存到数据库中
11、Linq的使用的更多相关文章
- LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
在本系列中.主要介绍LINQ to SQL基础的东西,由于LINQ太强大了,它对我们寻常使用不同的数据源有着不同的内容,其包含对于SQL Server 数据库的LINQ to SQL:对于XML 文档 ...
- 新语法11. – LINQ
LINQ分组: IEnumerable<IGrouping< group dog by dog.Age; 遍历分组: foreach (IGrouping<int, Dog> ...
- LINQ系列目录
1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...
- Linq 学习笔记
简介: LINQ 提供一种统一的方式,让我们能在C#语言中直接查询和操作各种数据. LINQ是用来描述数据访问总体方式的术语.LINQ to Object是针对实现了IEnumerable< ...
- Linq to Sql : 三种事务处理方式
原文:Linq to Sql : 三种事务处理方式 Linq to SQL支持三种事务处理模型:显式本地事务.显式可分发事务.隐式事务.(from MSDN: 事务 (LINQ to SQL)).M ...
- 当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层
1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: ...
- C#基础知识简单梳理
本文是转发博友的总结,方便自己以后随时温习: 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引用类型的数据存放在托管堆上面(它的引用地址却存放在堆栈上面)! 栈:它是一个内存数组, ...
- 转载文章----C#基础概念
转载地址:http://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引 ...
- 用c#操作Mongodb(附demo)
因为需要,写了一个基于泛型的helper,这样要使用起来方便一点. 为了大家也不重复造轮子,所以发出来希望能帮到谁. 复杂的查询最好用linq,这也是mongodb官方建议的. mongodb的C#配 ...
- C#常用特性
1.服务器控件ID .NET服务器控件有三个ID,即:ID,ClientID和UniqueID ID为服务器控件的服务器标示,在服务器代码中通过ID来唯一区分服务器控件: ClientID是服务器控件 ...
随机推荐
- vim 编辑器使用积累(for win)
开个坑,记录一下使用vim的进化历程.这东西不是一两天用的精的,多用自然就觉得有很多地方需要进一步学习,慢慢的效率就上来了. 首先我大部分时间都是在win上做开发,win上的vim需要去自己去配置诸多 ...
- kaggle数据挖掘竞赛初步--Titanic<数据变换>
完整代码: https://github.com/cindycindyhi/kaggle-Titanic 特征工程系列: Titanic系列之原始数据分析和数据处理 Titanic系列之数据变换 Ti ...
- CentOS5.4 搭建Hadoop2.5.2伪分布式环境
简介: Hadoop是处理大数据的主要工具,其核心部分是HDFS.MapReduce.为了学习的方便,我在虚拟机上搭建了一个伪分布式环境,来进行开发学习. 一.安装前准备: 1)linux服务器:Vm ...
- github使用
1.首先登录到https://github.com注册Github帐号,并且创建一个repository. 例如:注册的github帐号名为whu-zhangmin,创建的repository名称为w ...
- idea安装
- 转 : Hibernate懒加载深入分析
懒加载可以提高性能吗? 不可以简单的说"能",因为hibernate的关系映射拖累了SQL的性能,所以想出懒加载来弥补.只是弥补而以,不会超越.所以大家不要想着使用了懒加载总体性能 ...
- 5、HTML5列表、块和布局
1.块元素 块元素在显示的时候,通常会以新行开始 如:<h1> <p> <ul> <!-- 块—>注释 <p>hello</p> ...
- bzoj3876: [Ahoi2014]支线剧情
神犇题解:http://blog.csdn.net/popoqqq/article/details/43024221 题意:给定一个DAG,1为起始点,任意一个点可以直接回到1,每条边有经过代价,求一 ...
- jQuery设置聚焦并使光标位置在文字最后
var editor = document.getElementById('btn'); editor.onfocus = function () { window.setTimeout(functi ...
- 'scrapyd-deploy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
在windows上使用scrapyd-client 安装后,并不能使用相应的命令'scrapyd-deploy' 需要在"C:\Python27\Scripts" 目录下 增加sc ...