MVC中使用Entity Framework 基于方法的查询学习笔记 (三)
2013-10-31 13:59
477 查看
紧接上文,我们已经学习了MVC数据上下文中两个常用的类,这两个类承载着利用函数方式进行数据查询的全部内容,我们既然已经了解了DbSet<TEntity> 是一个泛型集合,并且实现了一些接口,下面我们先看这几个接口的定义:
[b]DbQuery<TResult> 类[/b]
[b]IDbSet<TEntity> 接口[/b]
[b]IQueryable<T> 接口[/b]
[b]IEnumerable<T> 接口[/b]
[b]IQueryable 接口[/b]
[b]IEnumerable 接口[/b]
[b]IEnumerable<T> 接口[/b]
公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。以上类及接口机会都继承了IEnumerable<T> 在这个接口中定义了一些非常实用的扩展方法可供使用,这也正是操作数据的关键,如下是该接口的定义:
命名空间: System.Collections.Generic
程序集: mscorlib(在 mscorlib.dll 中)
一些常见的扩展方法:
许多 System.Collections.Generic 命名空间中的接口和类继承了 IEnumerable<T> 接口以实现枚举数。 包括我们前面介绍到的一些接口。
[b]DbQuery<TResult> 类[/b]
[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
[b]IDbSet<TEntity> 接口[/b]
[SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")] public interface IDbSet<TEntity> : IQueryable<TEntity>, IEnumerable<TEntity>, IQueryable, IEnumerable where TEntity : class
[b]IQueryable<T> 接口[/b]
public interface IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable
[b]IEnumerable<T> 接口[/b]
public interface IEnumerable<out T> : IEnumerable
[b]IQueryable 接口[/b]
public interface IQueryable : IEnumerable
[b]IEnumerable 接口[/b]
[ComVisibleAttribute(true)] [GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")] public interface IEnumerable
[b]IEnumerable<T> 接口[/b]
公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。以上类及接口机会都继承了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 基于方法的查询学习笔记 (二)
- SpringMVC学习笔记(二)使用IntelliJ IDEA开发Spring MVC HelloWorld(基于Maven)
- SpringMVC + Spring + MyBatis 学习笔记:在类和方法上都使用RequestMapping如何访问
- 【原创】Asp.net MVC 学习笔记之-为什么使用Html.TextBox方法会出现异常?
- DELPHI学习笔记--使用通配符进行模糊查询
- 【学习笔记】《STL使用入门教程》第一讲:STL的string类型的使用方法
- DrawerLayout使用方法学习笔记
- JSP使用JDBC完成动态验证及采用MVC完成数据查询的方法
- AJAX学习笔记之JQ使用方法
- Web Service学习笔记:天气预报Web服务的使用方法
- [ASP.NET学习笔记之四]数据集的使用方法和技巧
- 【OpenCV学习笔记】之四:二值图像细化方法/骨架提取----基于2.0 Mat接口
- MVC使用Spring.Net应用IOC(依赖倒置)学习笔记3
- 基于Wolf32F031 自由评估板的KEY scan(查询方式)实验硬件原理及软件API使用方法(适用于STM32F030/031)
- MVC使用Spring.Net应用IOC(依赖倒置)学习笔记3
- ToLua学习笔记,使用Update方法(三)
- jQuery学习笔记--jqGrid的使用方法(编辑,删除,更新,新增)
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- VS 2008 学习笔记(5) --- CTabCtrl 使用方法