一、种类

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的使用的更多相关文章

  1. LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法

    在本系列中.主要介绍LINQ to SQL基础的东西,由于LINQ太强大了,它对我们寻常使用不同的数据源有着不同的内容,其包含对于SQL Server 数据库的LINQ to SQL:对于XML 文档 ...

  2. 新语法11. – LINQ

    LINQ分组: IEnumerable<IGrouping< group dog by dog.Age; 遍历分组: foreach (IGrouping<int, Dog> ...

  3. LINQ系列目录

    1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...

  4. Linq 学习笔记

    简介: LINQ 提供一种统一的方式,让我们能在C#语言中直接查询和操作各种数据.​​ LINQ是用来描述数据访问总体方式的术语.LINQ to Object是针对实现了IEnumerable< ...

  5. Linq to Sql : 三种事务处理方式

    原文:Linq to Sql : 三种事务处理方式 Linq to SQL支持三种事务处理模型:显式本地事务.显式可分发事务.隐式事务.(from  MSDN: 事务 (LINQ to SQL)).M ...

  6. 当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层

    1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: ...

  7. C#基础知识简单梳理

    本文是转发博友的总结,方便自己以后随时温习: 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引用类型的数据存放在托管堆上面(它的引用地址却存放在堆栈上面)! 栈:它是一个内存数组, ...

  8. 转载文章----C#基础概念

    转载地址:http://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引 ...

  9. 用c#操作Mongodb(附demo)

    因为需要,写了一个基于泛型的helper,这样要使用起来方便一点. 为了大家也不重复造轮子,所以发出来希望能帮到谁. 复杂的查询最好用linq,这也是mongodb官方建议的. mongodb的C#配 ...

  10. C#常用特性

    1.服务器控件ID .NET服务器控件有三个ID,即:ID,ClientID和UniqueID ID为服务器控件的服务器标示,在服务器代码中通过ID来唯一区分服务器控件: ClientID是服务器控件 ...

随机推荐

  1. 使用Autolayout对多行文本Label进行布局,高度不准确的解决办法!

    BUG描述: 今天公司的项目中发现了一个BUG,大概给大家描述一下,tabbleView有一个tableFooterView,这个footView中有一个Label,是多行显示文本,程序用的是Auto ...

  2. mysql 删除重复记录语句

    mysql 根据条件删除重复记录 只保留最小id的重复数据 DELETEFROM newsWHERE news_id IN ( SELECT a.news_id FROM ( SELECT news_ ...

  3. mpu

    #include "mpu.h" #include "mem.h" #include "my_errno.h" #include " ...

  4. onscroll

    var COUNT = 0, demo = document.getElementById('demo'); function testFn() {demo.innerHTML += 'testFN ...

  5. 发布自己的pods到CocoaPods trunk 及问题记录

    这两天准备把之前写的一些小玩意添加到pods库中去,参考了一些资料后进行操作,实际中也遇到了一些问题,记录下来,问题及解决方式在后面. 参考内容转载如下: 首先更新了用trunk之后,CocoaPod ...

  6. React学习笔记

    1.React的一开始出发点是:用于开发数据不断变化的大型应用程序(Building large applications with data that changes over time) 2.生命 ...

  7. EF升级6.0数据库链接不上问题

    昨天搞了个mvc4  先从net4.0 升级4.5后 数据库连接不上了,  然后升级ef未最新的6.1  居然还报错 不到方法:“System.Data.Objects.ObjectContext S ...

  8. Linux 文件的基本操作

    1>.新建空白文件: touch命令-->$ touch test 2>.新建目录: mkdir命令-->$mkdir mydir 使用 -p参数:同时创建父目录-->$ ...

  9. MySQL,排序,统计行转列

    表 -- ------------------------------ Table structure for a-- ---------------------------- DROP TABLE ...

  10. ReactJS实现的通用分页组件

    大家多少都自己写过各种版本的分页工具条吧,像纯服务版的,纯jsWeb板的,Angular版的,因为这个基础得不能再基础的功能太多地方都会用到,下面我给出以个用ReactJS实现的版本,首先上图看下效果 ...