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. 关于面试总结-SQL经典面试题

    关于面试总结6-SQL经典面试题 前言 用一条SQL 语句查询xuesheng表每门课都大于80 分的学生姓名,这个是面试考sql的一个非常经典的面试题 having和not in 查询 xueshe ...

  2. 如何修改 WordPress 的默认 Gravatar 头像

    如何修改 WordPress 的默认 Gravatar 头像? wordpress默认的头像是下面这种 在Settings的Discussion中,默认选择第一个Mystery Person, 意思是 ...

  3. 【转】Python3学习笔记(urllib模块的使用)

    原文地址:https://www.cnblogs.com/Lands-ljk/p/5447127.html 1.基本方法 urllib.request.urlopen(url, data=None,  ...

  4. ajax原生post请求

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Unity3D for iOS初级教程:Part 1/3

    转自Unity 3d for ios 这篇文章还可以在这里找到 英语 Learn how to use Unity to make a simple 3D iOS game! 这篇教材是来自教程团队成 ...

  6. UVA 11297 Census ——二维线段树

    [题目分析] 二维线段树模板题目. 简直就是无比的暴力.时间复杂度为两个log. 标记的更新方式比较奇特,空间复杂度为N^2. 模板题目. [代码] #include <cstdio> # ...

  7. [BZOJ1594] [Usaco2008 Jan]猜数游戏(二分 + 并查集)

    传送门 题中重要信息,每堆草的数量都不一样. 可以思考一下,什么情况下才会出现矛盾. 1.如果两个区间的最小值一样,但是这两个区间没有交集,那么就出现矛盾. 2.如果两个区间的最小值一样,并且这两个区 ...

  8. 雅礼培训 Problem B 【图论 + 贪心】

    题意 A和B在树上轮流选点,记A的联通块个数为\(x\),B的联通块个数为\(y\) A使\(x - y\)最大,B使\(x - y\) 二人采取最优策略,求\(x-y\) 题解 树联通块个数 = 点 ...

  9. 算法复习——bitset(bzoj3687简单题)

    题目: Description 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和.    目前 ...

  10. 2017NOIP初赛游记

    前天晚上,玩三国杀,玩到了昨天凌晨2点40多分吧,我觉得初赛要爆炸了, 不得不吐槽一下,三国杀的武将太少了. 昨天是初赛的日子,上午8点多来了后看了看阅读程序和程序填空,复习了以下理论知识和wsj 然 ...