初识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"//方法三

猜你喜欢

转载自blog.csdn.net/weixin_41392824/article/details/81633584