MVC中使用Entity Framework 基于方法的查询学习笔记 (三)
紧接上文,我们已经学习了MVC数据上下文中两个常用的类,这两个类承载着利用函数方式进行数据查询的全部内容,我们既然已经了解了DbSet<TEntity> 是一个泛型集合,并且实现了一些接口,下面我们先看这几个接口的定义:
DbQuery<TResult> 类
[SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")]
public class DbQuery<TResult> : IOrderedQueryable<TResult>,
IQueryable<TResult>, IEnumerable<TResult>, IOrderedQueryable, IQueryable,
IEnumerable, IListSource, IDbAsyncEnumerable<TResult>, IDbAsyncEnumerable
IDbSet<TEntity> 接口
[SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")]
public interface IDbSet<TEntity> : IQueryable<TEntity>,
IEnumerable<TEntity>, IQueryable, IEnumerable
where TEntity : class
IQueryable<T> 接口
public interface IQueryable<out T> : IEnumerable<T>,
IQueryable, IEnumerable
IEnumerable<T> 接口
public interface IEnumerable<out T> : IEnumerable
IQueryable 接口
public interface IQueryable : IEnumerable
IEnumerable 接口
[ComVisibleAttribute(true)]
[GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")]
public interface IEnumerable
IEnumerable<T> 接口
公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。以上类及接口机会都继承了IEnumerable<T> 在这个接口中定义了一些非常实用的扩展方法可供使用,这也正是操作数据的关键,如下是该接口的定义:
命名空间: System.Collections.Generic
程序集: mscorlib(在 mscorlib.dll 中)
public interface IEnumerable<out T> : IEnumerable
一些常见的扩展方法:
All<TSource> 确定序列中的所有元素是否满足条件。 (由 Enumerable 定义。)
Any<TSource>() 已重载。 确定序列是否包含任何元素。 (由 Enumerable 定义。)
Average<TSource>() 已重载。 计算平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
Count<TSource>() 已重载。 返回序列中的元素数量。 (由 Enumerable 定义。)
Distinct<TSource>() 已重载。 通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。 (由 Enumerable 定义。)
First<TSource>() 已重载。 返回序列中的第一个元素。 (由 Enumerable 定义。)
FirstOrDefault<TSource>() 已重载。 返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。 (由 Enumerable 定义。)
GroupBy<TSource, TKey>(Func<TSource, TKey>) 已重载。 根据指定的键选择器函数对序列中的元素进行分组。 (由 Enumerable 定义。)
Join<TOuter, TInner, TKey, TResult>(IEnumerable<TInner>, Func<TOuter, TKey>, Func<TInner, TKey>, Func<TOuter, TInner, TResult>) 已重载。 基于匹配键对两个序列的元素进行关联。 使用默认的相等比较器对键进行比较。 (由 Enumerable 定义。)
Last<TSource>() 已重载。 返回序列的最后一个元素。 (由 Enumerable 定义。)
LastOrDefault<TSource>() 已重载。 返回序列中的最后一个元素;如果序列中不包含任何元素,则返回默认值。 (由 Enumerable 定义。)
LongCount<TSource>() 已重载。 返回一个 Int64,表示序列中的元素的总数量。 (由 Enumerable 定义。)
Max<TSource>() 已重载。 返回泛型序列中的最大值。 (由 Enumerable 定义。)
Min<TSource>() 已重载。 返回泛型序列中的最小值。 (由 Enumerable 定义。)
OrderBy<TSource, TKey>(Func<TSource, TKey>) 已重载。 根据键按升序对序列的元素排序。 (由 Enumerable 定义。)
Remove<T> 将源集合中的每个节点从其父节点中移除。 (由 Extensions 定义。)
Select<TSource, TResult>(Func<TSource, TResult>) 已重载。 将序列中的每个元素投影到新表中。 (由 Enumerable 定义。)
Single<TSource>() 已重载。 返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。 (由 Enumerable 定义。)
SingleOrDefault<TSource>() 已重载。 返回序列中的唯一元素;如果该序列为空,则返回默认值;如果该序列包含多个元素,此方法将引发异常。 (由 Enumerable 定义。)
Skip<TSource> 跳过序列中指定数量的元素,然后返回剩余的元素。 (由 Enumerable 定义。)
Sum<TSource>(Func<TSource, Decimal>) 已重载。 计算 Decimal 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
Take<TSource> 从序列的开头返回指定数量的连续元素。 (由 Enumerable 定义。)
ToArray<TSource> 从 IEnumerable<T> 创建一个数组。 (由 Enumerable 定义。)
ToList<TSource> 从 IEnumerable<T> 创建一个 List<T>。 (由 Enumerable 定义。)
Union<TSource>(IEnumerable<TSource>) 已重载。 通过使用默认的相等比较器生成两个序列的并集。 (由 Enumerable 定义。)
Where<TSource>(Func<TSource, Boolean>) 已重载。 基于谓词筛选值序列。 (由 Enumerable 定义。)
许多 System.Collections.Generic 命名空间中的接口和类继承了 IEnumerable<T> 接口以实现枚举数。 包括我们前面介绍到的一些接口。
MVC中使用Entity Framework 基于方法的查询学习笔记 (三)的更多相关文章
- MVC中使用Entity Framework 基于方法的查询学习笔记 (一)
EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...
- MVC中使用Entity Framework 基于方法的查询学习笔记 (二)
解释,不解释: 紧接上文,我们在Visual Studio2012中看到系统为我们自动创建的视图(View)文件Index.cshtml中,开头有如下这句话: @model IEnumerable&l ...
- Entity Framework 基于方法的查询语法
实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发 ...
- asp.net MVC中使用entity framework出现从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值”的处理
方法一: 使用DateTime类型的字段在作为参数传入到数据库前记得赋值,并日期要大于1753年1月1日. 方法二: 将DateTime类型的字段修改为DateTime?类型,由于可空类型的默认值都是 ...
- 在MVC中使用dotless后台动态解析LESSCSS的学习笔记
通过学习LessCSS,我们知道,Less是需要通过编译才能生成 .css 文件,主要使用三种方式进行编译: 1)使用第三方编译工具,在项目发布前编译好放在项目中. 2)在浏览器端解析执行,需要引用 ...
- angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令
在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...
- MVC中使用EF(1):为ASP.NET MVC程序创建Entity Framework数据模型
为ASP.NET MVC程序创建Entity Framework数据模型 (1 of 10) By Tom Dykstra |July 30, 2013 Translated by litdwg ...
- 在Oracle中使用Entity Framework 6 CodeFirst
项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...
- Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1
这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...
随机推荐
- 第五次团队作业——第一次项目冲刺——Alpha版本
Deadline:2016-11-19 8:00am 本次团队作业将持续三周时间,完成项目Alpha版本,在2016.11.19 的实践课上进行演示操作. 阅读或再次阅读<构建之法> ...
- JavaScript基础语法
首先,JavaScript的基本语法是以名为ECMAScript的伪语言定义的,理解ECMAScript的细节就是理解它在浏览器中实现的关键,目前大多数浏览器都遵循了ECMAScript第3版的,但是 ...
- 关于Django 错误 doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS
记录一下 报错 doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS\ 这个问题出现没 ...
- Ajax在静态页面中向指定url发送json请求获取返回的json数据
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- linux系统下使用xampp 丢失mysql root密码【xampp的初始密码为空】
如果在ubuntu 下面 使用xampp这个集成开发环境,却忘记mysql密码. 注:刚安装好的xampp的Mysql初始密码是空... 找回密码的步骤如下: 1.停止mysql服务器 sudo /o ...
- js中 checkTime()函数
<html><head><script type="text/javascript">function startTime()//函数start ...
- UML(Unified Model Language)统一建模语言
一.九种图 二.类间关系 一.UML中的九种图 1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目 ...
- Linux下Steam中支持中文的办法
搜索过好几个解决方案,诸如添加skin等等,在我的ARCH机器上似乎都不行然后在搜索linux steam cjk时, 发现一个链接中有解决DOTA2显示中文不正确的问题,感觉可能有用,就参考着搞定了 ...
- JavaScript------获取url地址中的参数
$(document).ready(function () { //获取地址中的参数(name是字符串) function getParameter(name) { //正则表达式 var reg = ...
- ORA-01438: 值大于为此列指定的允许精度
Number的数据声明如下:表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点 ...