zoukankan      html  css  js  c++  java
  • 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> 接口以实现枚举数。 包括我们前面介绍到的一些接口。

  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/mane/p/3399130.html
Copyright © 2011-2022 走看看