正文
Linq定义
LINQ(Language Integrated Query)语言集成查询是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。
经常听说linq to xml,linq to sql,linq to entities , 凡是某一类数据的集合都可以使用Linq,如object、DbSet(EF中)、List、数组、XML、sql数据库。
如何使用Linq?
Linq使用方式很简单,类似Sql语句。如下:
int[] x = { 0, 9, 2, 3, 5 };
var x1 = from u in x
where u > 0
select u;
LINQ定义了大约40个查询操作符(关键字),如select、from、in、where以及order by(C#中)。上面的代码就是Linq使用from、in、where、select来查询。你可能会奇怪sql语句中select是在最前面的啊?其实在sql执行时,from是最先执行的,select的优先级比from低,Linq中的查询语句使用的是与数据库执行顺序一致的写法,有兴趣的可以去查查sql关键字的执行顺序。
两种使用方式
其实Linq可以用两种方式来使用,上面的写法是其中一种,这两种分别为:查询语句、查询方法。
- 查询语句
查询语句如上面一样,使用类似SQL语句来书写。这种使用方式适合习惯写SQL的人员来写。 - 查询方法
查询方法则更为简单,将关键字封装成方法来使用,
查询方法一般是配合Lambda表达式来使用,如下:
int[] x = { 0, 9, 2, 3, 5 };
var x2 = x.Where(u => u > 0).Select(u => u);
这两种使用方式效率上没有区别。
其中查询方法又分为System.Linq.Enumerable和System.Linq.Queryable两个命名空间,有兴趣的可以看看Linq中的Enumerable和Queryable
总结
- Linq用于类型SQL的语法进行集合查询
- 40个查询操作符(关键字)
- 两种使用方式:查询语句和查询方法