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

  • 相关阅读:
    Http的响应结构
    jQuery ajax
    什么是序列化和反序列化
    Ubuntu 安装 Anaconda3 步骤
    mysql 带换行符的字符串数据插入数据库异常
    Elasticsearch之Analysis(分析器)
    python 使用 xlrd、xlwd读写excel表格
    测试
    elasticsearch中的mapping简介
    Elasticsearch索引的操作,利用kibana 创建/删除一个es的索引及mapping映射
  • 原文地址:https://www.cnblogs.com/mane/p/3399130.html
Copyright © 2020-2023  润新知