zoukankan      html  css  js  c++  java
  • Entity Framework

          Entity Framework利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象(entity),而数据字段都转换为属性(property),关系则转换为  结合属性(association),让数据库的E/R模型完全转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下,则是高度集成的与对应结构的概念层、对应层和存储层,以及支持Entity Frameowrk的数据提供者(provider),让数据访问的工作得以顺利与完整地进行。

          ADO.NET Entity Framework以Entity Data Model(EDM)为主,将数据逻辑层切分为三块,分别为Conceptual Schema,Mapping Schema与Storage

    Schema三层,其上还有Entity Client,Object Context 以及LINQ可以使用。

          概念层:负责向上的对象与属性的显露与访问,概念层结构定义了对象模型,让上层的应用程序代码可以如面向对象的方式般访问数据。

          对应层:将上方的概念层和底下的存储层的数据结构对应在一起,以确认数据的来源与流向。

          存储层:依不同的数据库与数据结构,而显露出实体的数据结构体,和Provider一起,负责实际对数据库的访问和SQL的产生。:负责与数据库管理系统中的数据表做实体对应(Physical Mapping),让数据可以输入正确的数据来源中

                 LINQ的语义:(Language-Integrated Query,语言集成查询,是一组用于C#和Visual Basic语言的扩展。它允许编写C#或Visual Basic代码以查询数据库相同的方式操作内存数据。)

      from 临时变量 in 集合对象或数据库对象

          where 条件表达式

          [order by 条件]

          [group by 条件]

          select 临时变量中被查询的值

          注意:LINQ语法必须以select或者group by 结束。LINQ的查询返回值的类型是临时变量的类型,可能是一个对象也可能是一个集合。LINQ的查询一般跟var关键字一起使用。

         在LINQ中,数据源和查询结构实际上都是IEnumerable<T>或IQueryable<T>类型对象,所以可以通过使用普通对象(调用方法、使用属性等)对数据源进行查询或使用查询结构数据。

         IEnumerable<T>接口:IEnumerable<T>泛型接口支持在指定的数据集合上进行迭代操作。它定义了一组扩展方法,用来对数据集合中的元素进行遍历、过滤、排序、搜索等操作。在LINQ中,数据源实际上市实现了接口IEnumerable<T>的类,通过select子句返回的查询结果页是一个实现了IEnumerable<T>的类。

         IEnumerable<T>提供的方法包括数值运算(Sum、Min、Max、Average)、元素数量(Count、LongCount)、取值(First、Last、ElementAt等)、提取子集(Skip、SkipWhile、Take、TakeWhile、)集合操作(Reverse、Concat、Distinct、Except、Intersect、Union、SequenceEqual等)。这些方法提供了LINQ所需要的所有操作。

  • 相关阅读:
    HDU5643-King's Game
    KM算法详解+模板
    二分图最大匹配(匈牙利算法)
    二分图判断(交叉染色)
    能被2、3、4、5、6、7、8、9 等数整除的数的特征
    Codeforces Round #306 (Div. 2) ABCDE(构造)
    HDU5627--Clarke and MST (bfs+位运算)
    Educational Codeforces Round 82 (Rated for Div. 2)
    2020 CCPC Wannafly Winter Camp Day5
    Codeforces Round #618 (Div. 2)
  • 原文地址:https://www.cnblogs.com/xuezhi/p/2833500.html
Copyright © 2011-2022 走看看