LINQ 读书笔记

 LINQ

LINQ(Language-Integrated Query,语言集成查询)是微软公司推出的一项新技术,它能够将查询功能直接引入到.NET Framework 3.5所支持的编程语言中,而不是以字符串嵌入到应用程序代码中。
LINQ也是一种查询,它在对象领域和数据领域之间架起了一座桥梁。
 
LINQ4个组件
LINQ to Objects:查询和处理对象数据,如集合
LINQ to SQL:关系数据,如SQL Server数据库
LINQ to DataSet: DataSet对象数据
LINQ to XML : XML结构数据
传统数据库访问技术
SqlConnection cn = new SqlConnection(); 
cn.ConnectionString =
ConfigurationSettings.AppSettings["connectionStrings"];
cn.Open();
SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM authors", cn);
DataSet ds = new DataSet();
ad.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
cn.Close();
LINQ 数据访问技术
 
DataClasses1DataContext dc = 
new DataClasses1DataContext();
var result = from author in dc.authors
select author;
GridView1.DataSource = result;
GridView1.DataBind();
string[] names = { "Burke", "Connor", "Frank", "Everett"};
var query = from s in names
where s.Length == 5
orderby s descending
select s.ToUpper();
foreach (var item in query)
Console.WriteLine(item);
LINQ执行过程
所有LINQ 查询操作都由获取数据源、创建查询、 执行查询三个不同的操作组成。
LINQ支持各种数据源,如SQL Server、XML、ADO.NET DataSet、My sql、Objects。
查询表达式用于指定要从数据源中检索的信息。在查询表达式中还可以指定在返回这些信息之前如何对其进行排序、分组和结构化。
查询的执行与查询本身截然不同。如果只是创建查询变量,并不会检索任何数据。查询变量本身只是存储查询命令,实际的查询执行会延迟到循环访问查询变量时发生。此概念被称为“延迟执行”。但如果在查询表达式中存在下列两种情况之一,则查询表达式将被强制立即执行。 
  LINQ查询子句
LINQ查询表达式必须以from子句开头,并且必须以select或group子句结束。
查询表达式可以包含一个或多个where、orderby、group、join和let子句,甚至from子句。
  LINQ六点优势 
1.LINQ使得查询成为编程语言的一个组成部分,这使得查询表达式可以得到很好的编译时语法检查,丰富的元数据,智能感知等强类型语言的好处。
2.LINQ查询表达式与传统的SQL语句不同,是强类型的。
3.LINQ不采用特定的关系数据库或者XML的专有方案,而采用通用方案来解决各种信息源的访问与整合问题。因此,无论什么类型的数据,都使用相同的方法进行处理。
4.LINQ提供了强大的过滤、排序、数据分区、分组等处理数据的功能。
5.使用LINQ可以直接处理XML元素,并为内存中的XML文档提供强大的处理功能。
6.LINQ 的查询结果序列可以被绑定到任何数据绑定控件。
  LINQ表达式
 
string[] words = { " is ", “bad", "saved", "A", "are", “Be", "earned" };
var results = from word in words
let w = word.ToLower()
where w[0] == 'a' || w[0] == ‘b'
select word;
int[] nums = { 11, 22, 43, 14, 50, 87 };
var results =from n in nums
where n % 2 != 0
select n

 
 

转载于:https://www.cnblogs.com/wuming1415/archive/2012/03/23/2414401.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值