初识LINQ
LINQ,全称Language Integrated Query(语言集成查询),是一组用于C#和VB语言的扩展,它允许编写C#或者VB代码以操作内存数据的方式,查询数据库。
LINQ是一组语言特性和API,使得你可以使用统一的方式编写各种查询。用于保存和检索来自不同数据源的数据,从而消除了编程语言和数据库之间的不匹配,以及为不同类型的数据源提供单个查询接口。
LINQ总是使用对象,因此你可以使用相同的查询语法来查询和转换XML、对象集合、SQL数据库、ADO.NET数据集以及任何其他可用的LINQ提供程序格式的数据。
查询语句方式:(Query Syntax)一种更接近SQL语法的查询方式,可读性更好。
LINQ主要包含以下三部分:
1、LINQ to Objects 主要负责对象的查询。
2、LINQ to XML 主要负责XML的查询。
3、LINQ to ADO.NET 主要负责数据库的查询。
LINQ to SQL
LINQ to DataSet
LINQ to Entities
LINQ的优势:
1、熟悉的语言:开发人员不必为每种类型的数据源或数据格式学习新的语言。
2、更少的编码:相比较传统的方式,LINQ减少了要编写的代码量。
3、可读性强:LINQ增加了代码的可读性,因此其他开发人员可以很轻松地理解和维护。
4、标准化的查询方式:可以使用相同的LINQ语法查询多个数据源。
5、类型检查:程序会在编译的时候提供类型检查。
6、智能感知提示:LINQ为通用集合提供智能感知提示。
7、整形数据:LINQ可以检索不同形状的数据。
简单的linq用法:
//用法1
var result=from r in db.UserInfo
//用法2
var result2=db.UserInfo
//用法3
string result3="select * from UserInfo"
带where的查询
//用法1
var result=from r in db.UserInfo
where r.UserID>10
select r;
//用法2
var result2=db.UserInfo.where(p=>p.UserID>10)
//用法3
string result3="select * from UserInfo where UserID>10"
简单的函数计算
//获取最大ID
var result=(from r in db.UserInfo
select r).Max(p=>p.UserID);//方法一
var res=db.UserInfo.Max(p=>p.UserID);//方法二
string res="select Max(UserID) from UserInfo";//方法三
//获取最小ID
var result=(from r in db.UserInfo
select r).Min(p=>p.UserID);//方法一
var res=db.UserInfo.Min(p=>p.UserID);//方法二
string res="select Min(UserID) from UserInfo";//方法三
//获取集合总数
var res=(from r in db.UserInfo
select r).Count();//方法一
var res=db.UserInfo.Count(p=>p.UserID);//方法二
string res="select Count(UserID) from UserInfo";//方法三
//求和
var res=(from r in db.UserInfo
select r).Sum(p=>p.UserID);//方法一
var res=db.UserInfo.Sum(p=>p.UserID);//方法二
string res="select Sum(UserID) from UserInfo";//方法三
排序
//正序排序
var res=from r in db.UserInfo
where r.UserID>10
orderby ascending
select r;//方法一
var res=db.UserInfo.Orderby(p=>p.UserID).where(p=>p.UserID>10).ToList();//方法二
string res="select * from UserInfo where UserID>10 order by UserID asc"//方法三
//倒序排序
var res=from r in db.UserInfo
where r.UserID>10
orderby descending
select r;//方法一
var res=db.UserInfo.OrderbyDescEnding(p=>p.UserID).where(p=>p.UserID>10).ToList();//方法二
string res="select * from UserInfo where UserID>10 order by UserID desc"//方法三
上一篇: Linq初学用法(1)
下一篇: 第十二章