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. Java的9种基本数据类型以及封装类

    Java的9种基本数据类型以及封装类 基本类型 大小(单位/字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 (short)0 Short int 4 0 Integer ...

  2. PAT Basic 1065

    1065 单身狗 “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣 ...

  3. Leetcode 337.大家结舍III

    打家劫舍III 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根".除了"根"之外,每栋房子有且只有 ...

  4. HDU-3065 病毒侵袭持续中 AC自动机又是一板子!

    病毒侵袭持续中 上一题是求出现多少病毒输出病毒序号,而这题输出每个病毒出现的次数.这题有字典树基础都能做出来,把叶子节点用相应的编号标记起来,匹配的时候遍历到叶子节点用一个数组把次数存起来就行了. 有 ...

  5. 刷题总结——spoj1812(后缀自动机+DP)

    题目: A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is t ...

  6. 常州模拟赛d2t3 小X的佛光

    平日里最喜欢做的事就是蒸发学水.[题目描述]小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X 城时只建造 N ...

  7. Spring JdbcTemplate 查询方法中的RowMapper实现汇总

    实现一.在内部建立内联类实现RowMapper接口 package hysteria.contact.dao.impl; import java.sql.ResultSet; import java. ...

  8. 线程池的使用。好文。mark【http://blog.csdn.net/rwecho/article/details/21157289】

    介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...

  9. java面

    常被问到的十个 Java 面试题 每周 10 道 Java 面试题 : 面向对象, 类加载器, JDBC, Spring 基础概念 Java 面试题问与答:编译时与运行时 java面试基础1 java ...

  10. zoj 3627#模拟#枚举

    Treasure Hunt II Time Limit: 2 Seconds                                     Memory Limit: 65536 KB    ...