走入asp.net mvc不归路:[6]linq常见用法

asp.net mvc结合linq,先不说性能问题,对于增删查改的操做仍是至关方便的。如下咱们就来介绍一下linq在asp.net mvc的Controller中的常见用法。数据库

1 首先来看看整个数据表,共有3个表,要访问这个数据库,得有一个代理,这个代理就是edmx文件中继承类DbContext的AllTestEntitiesmvc

clipboard

clipboard[1]

clipboard[2]

2 实体代理,能够直接在Controller中声明,而且数据库中对应的表,能够无缝对接;使用时,声明一个变量db,而后使用时,要访问相应表或视图,能够直接使用db.Domains(在使用Entity Framework进行对象关系映射时,能够选择是否启用复数形式,通常咱们会选上,习惯上复制是数据表,单数是类)asp.net

clipboard[3]

3 来看一个常见的linq查询,这个查询的是名称包含ab的、后缀是.com的域名,而且先按建立时间倒序排列,再按名称顺序排列,最终封装成List,强制返回全部记录性能

clipboard[4]

4 你能够写好几个Where子句,也能够合在一块儿写(使用&&链接起拉姆达表达式),而后你能够排序,最终再封装,它走是一个传送带的流程,第一个where结束了,传到第二个传送带筛选,第二个传送带结束了,传送到第三个传送带排序,依此类推;另外,之因此能够这样作,还取决于linq中的一个延迟查询的概念,之后会专门作一个解释,如今先简单介绍和使用。学习

clipboard[5]

5 除了Where以及排序,还有Include(),Entity Framework在关系映射时,通常会在类中包含外键列,而Include就是来判断外键是否为空的,不空则返回,不然过滤掉;图示中返回有后缀且有建立用户的域名.net

clipboard[6]

6 能够进行统计,统计域名中包含ab的个数3d

clipboard[7]

7 取出一个符合条件的记录;示例都是取出一条记录,其中带OrDefault,当没有符合的记录时,则返回null,不带OrDefault,则当没有记录时报错;至于SingleOrDefault()和Single()则当符合条件的记录大于2时,报错,这样以保证记录的惟一性代理

clipboard[8]

8 还能够根据id来直接查询记录,固然,不要忘记判断是否为空对象

clipboard[9]

9 最后还介绍一种拉链,Zip(),它能够把两个列表的内容对应粘合在一块儿,成为a1,b2,c3的列表blog

clipboard[10]

10 linq的常见用法就介绍到这里,祝您学习愉快!

本人原创,转载请注明出处,更佳视觉排版请移步:http://t.cn/R7jFy5t

相关文章
相关标签/搜索