asp.net mvc结合linq,先不说性能问题,对于增删查改的操作还是相当方便的。以下我们就来介绍一下linq在asp.net mvc的Controller中的常见用法。

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

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

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

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

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

6 可以进行统计,统计域名中包含ab的个数

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

8 还可以根据id来直接查询记录,当然,不要忘记判断是否为空

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

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

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

走入asp.net mvc不归路:[6]linq常见用法的更多相关文章

  1. 走入asp.net mvc不归路:[1]项目文件结构

    先来了解一下一个asp.net mvc项目的文件结构. 1 项目文件结构一览 2 mvc,顾名思义,一个项目中最重要的就是这三个东西:M(Model,模型),V(View,视图),C(Controll ...

  2. 走入asp.net mvc不归路:[5]Action的返回

    asp.net mvc提供了多种返回方式,一方面使得视图可以重用,另一方面灵活强大,有直接返回视图,返回Json,返回文件流,返回到相同Controller的Action,返回到另一个Controll ...

  3. 走入asp.net mvc不归路:[3]创建控制器

    实际上,控制器就是一个类,一个继承自Controller的类.正常创建一个Controller即可,而问题在于asp.net mvc提供了一套便捷的方法,在创建一个Controller时,可以自动创建 ...

  4. 走入asp.net mvc不归路:[2]控制器概览

    asp.net mvc中最灵活的地方就是控制器,这里可以验证数据,可以跳转视图,还可以访问数据库等等.所以,我们要先从这里说起. 1 控制器就是继承了Controller的类,一般来说,类名后面都会增 ...

  5. 走入asp.net mvc不归路:[4]说说Action有哪些常见成员

    一个控制器中,功能最终会落实到一个个Action中实现,最常见的是增删查改操作.这些Action是一个个的方法,一般返回值是ActionResult,并且是public 方法,可以带参数,可以添加元标 ...

  6. asp.net MVC添加HtmlHelper扩展示例和用法

    一.先创建一个HtmlHelper的扩展类,代码: using System; using System.Collections.Generic; using System.Linq; using S ...

  7. asp.net mvc Html.BeginForm()及Html.Action用法

    Html.BeginForm    Add:操作方法的名称,Activities:控制器的名称,FormMethod.Post:定义from的method的值,,new { id = "fo ...

  8. LINQ 常见用法

    以下数据源都假设为data 1.获取某列的不重复数据 List<int> ids =  data.Select(t => t.ID).Distinct().ToList(); 2.对 ...

  9. angular.js的路由和模板在asp.net mvc 中的使用

    angular.js的路由和模板在asp.net mvc 中的使用 我们知道angular.js是基于mvc 的一款优秀js框架,它也有一套自己的路由机制,和asp.net mvc 路由不太一样.as ...

随机推荐

  1. django的rest framework框架——安装及基本使用

    一.django的FBV 和 CBV 1.FBV(基于函数的视图): urlpatterns = [ url(r'^users/', views.users), ] def users(request ...

  2. LA 4256 DP Salesmen

    d(i, j)表示使前i个数满足要求,而且第i个数值为j的最小改动次数. d(i, j) = min{ d(i-1, k) | k == j | G[j][k] } #include <cstd ...

  3. 00051_static关键字

    1.static概念 当在定义类的时候,类中都会有相应的属性和方法.而属性和方法都是通过创建本类对象调用的.当在调用对象的某个方法时,这个方法没有访问到对象的特有数据时,方法创建这个对象有些多余.可是 ...

  4. java 协程框架quasar gradle配置

    https://github.com/puniverse/quasar-gradle-template/blob/master/gradle/agent.gradle 1.将其中的"-jav ...

  5. vc调试大全

    一.调试基础 调试快捷键 F5:  开始调试 Shift+F5: 停止调试 F10:   调试到下一句,这里是单步跟踪 F11:   调试到下一句,跟进函数内部 Shift+F11:  从当前函数中跳 ...

  6. Python第三方库之openpyxl(5)

    Python第三方库之openpyxl(5) 气泡图 气泡图类似于散点图,但使用第三个维度来确定气泡的大小,图表可以包括多个项目 from openpyxl import Workbook from ...

  7. 【软考5】解释型 or 编译型

    导读:在上篇博客中,我们了解到,目前的编码语言经过不断的发展,已经经历了机器语言--汇编语言--高级语言的过程.虽然我们的编码语言在不停的升级,但作为计算机来说,它始终是一个只能理解0和1构成的机器语 ...

  8. nginx,lvs,haproxy负载均衡对比

    Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术,具体的应用需求还得具体分析. 如果是中小型的Web应用,比 ...

  9. python 列表 字符串 转换

    列表转字符串python中的列表l = ['1','2','3','4']转成str型'1,2,3,4'','.join(l)这个方法,列表里都是字符串的话可以这样用.列表里是整数的情况可以用: &g ...

  10. HackerRank# Fibonacci Modified

    原题地址 竟然64位都要爆,这是要大整数乘法的节奏吗?我才不要写大整数乘法呢,用Ruby干掉 代码: # Enter your code here. Read input from STDIN. Pr ...