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

最新文章

  1. Java基础学习总结——Java对象的序列化和反序列化
  2. WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
  3. document.body.scrollTop用法
  4. 【C#进阶系列】08 方法
  5. Python sequence (序列)
  6. hover和mouseover,mouseout的区别
  7. JavaScript创建对象的写法
  8. Win7 下硬盘安装Linux Mint 17
  9. Delphi摄像头操作
  10. Android 快捷方式
  11. C#如何在panl控件上添加Form窗体
  12. metasploit快速入门
  13. windows下安装oracle11g测试是否成功与监听器问题和网页控制台登录
  14. Spring Boot 2集成Redis
  15. git 使用遇到的问题
  16. Atcoder D - Knapsack 1 (背包)
  17. opencv3.1线性可分svm例子及函数分析
  18. courator - create
  19. I/O事件处理模型之Reactor和Proactor 【转】
  20. centos6:一个网卡上显示多个ip地址的错误

热门文章

  1. .NET:权限管理
  2. leetcode刷题——查找
  3. 关于django form验证是否用户名已存在
  4. 【Luogu】P1005矩阵取数游戏(高精度+DP)
  5. VIJOS 1889 天真的因数分解 ——莫比乌斯函数
  6. BZOJ 3282 Tree ——Link-Cut Tree
  7. cf3D Least Cost Bracket Sequence
  8. ASP.NET里创建Microsoft Word文档
  9. gdb 远程调试android进程
  10. android实现通知栏消息