前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET MVC5高级编程 ——(7)LINQ to SQL

ASP.NET MVC5高级编程 ——(7)LINQ to SQL

作者头像
浩Coding
发布2019-07-03 11:00:13
2.5K0
发布2019-07-03 11:00:13
举报
文章被收录于专栏:浩Coding

引言——Model 实现数据访问

1.1 LINQ

LINQ( Language Integrated Query )——语言集成查询,.NET Framework 3.5 中出现的技术,其命名空间(.NET Framework):System.Linq;

LINQ 是一组语言特性和API,使得开发人员可以使用统一的方式编写各种查询。查询的对象包括XML、对象集合、SQL Server 数据库等等。

1.2 LINQ要解决的问题

长期以来,开发社区形成以下格局:

  • 面向对象与数据访问两个领域长期分裂,各自为政
  • 编程语言中的数据类型与数据库中的数据类型形成两套体系。例如: -- C# 中字符串用 string 表示 -- SQL 中字符串用 NVarchar/Varchar/Char 表示
  • SQL 编码体验落后: -- 没有智能感应 -- 没有严格意义上的强类型和类型检查
  • SQL 和 XML 都有各自的查询语言,而对象没有自己的查询语言

1.3 LINQ的组成

LINQ 主要包含以下三部分:

LINQ to Objects 主要负责对象的查询

LINQ to XML 主要负责 XML 的查询

LINQ to ADO.NET 主要负责数据库的查询:

-- LINQ to SQL

-- LINQ to DataSet

-- LINQ to Entities

如图所示:

2.1 LINQ 第一例

在没有LINQ以前,我们这样查询:

用LINQ, 我们可以这样查询:

3.1 匿名方法

.NET FrameWork 在 C# 2.0 中,加入了匿名方法特性:

在 C# 3.0 中,继匿名方法之后加入了更为简洁的 Lambda 表达式

3.2 Lambda表达式语法

最基本的 Lambda 表达式语法如下:

参数列表中的参数类型可以是明确类型或者是推断类型(var)

如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来。

如果参数列表只包含一个推断类型参数时,可以去掉括号:

完整的写法是最安全的 ,所以重点应该先讲清楚完整格式,各种简写方式都是有前提假设条件的。

如果方法体只包含一条语句时,可以去掉花括号:

3.3 Lambda表达式的更多例子

3.4 Lambda与匿名方法的关系

总体上说,匿名方法可以看作是Lambda 表达式的功能子集,但是两者存在以下区别:

  • Lambda 表达式的参数允许不指明参数类型,而匿名方法的参数必须明确指明参数类型。
  • Lambda 表达式的方法体允许由单一表达式或者多条语句组成,而匿名方法不允许单一表达式形式。

4.1 LINQ的基本操作符

  • Select()
  • Where()
  • OrderBy()
  • GroupBy()

4.1.1 基本查询操作符-获取数据 Select()

4.1.2 基本查询操作符-过滤数据 Where()

4.1.3 基本查询操作符-排序数据 OrderBy()

4.1.4 基本查询操作符-分组数据 GroupBy()

4.2 高级查询方法

4.2.1 聚合类查询方法 Count,Max/Min,Average

4.2.2 排序类查询方法 ThenBy

4.2.3 分区类查询方法 Take/TakeWhile Skip/SkipWhile

4.4.4 集合类查询方法 Distinct

4.4.5 生成类查询方法 Range Repeat

4.3 LINQ to SQL 示例

本系列文章所有实例代码GitEE地址:

https://gitee.com/jahero/mvc

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档