• Entity Framework 一


    本篇主要介绍:EntityFramework简介, 实体框架架构图, EF版本

    实体框架

    编写和管理数据访问的ADO.Net代码是一件单调乏味的工作。微软已经提供了一个名为“实体框架”的O / RM框架来为你的应用程序自动化数据库相关的活动。

    Microsoft已经给出了Entity Framework的以下定义:(简称 EF)

    实体框架是一个对象/关系映射(O / RM)框架这是ADO.NET的一个增强,它为开发人员提供了访问和存储数据库数据的自动化机制。EF为现有数据库创建数据访问类,以便您可以直接使用这些类与数据库交互,而不是直接与ADO.Net交互

    实体框架在三种情况下是有用的。首先,如果你已经有了现有的数据库,或者你想在应用程序的其他部分之前设计你的数据库。其次,您要专注于您的域类,然后从您的域类创建数据库。第三,你想在可视化设计器上设计你的数据库模式,然后创建数据库和类。

    ORM      

    ORM是一种将数据从域对象存储到关系数据库(如MS SQL Server)的工具,它以自动化的方式,不需要太多的编程。

    O / RM包括三个主要部分:域类对象,关系数据库对象和有关域对象如何映射到关系数据库对象(表,视图和存储过程)的映射信息。ORM允许我们将我们的数据库设计与我们的域类设计分开。这使得应用程序可以维护和扩展。它还自动执行标准的CRUD操作(创建,读取,更新和删除),以便开发人员不需要手动编写。

    典型的ORM工具为您的应用程序生成数据库交互的类,如下所示。

     

    市场上有很多.net的ORM框架,如DataObjects.Net,NHibernate,OpenAccess,SubSonic等。实体框架是微软的一个开源的ORM框架

    实体框架的架构图:

    EDM(实体数据模型):   EDM由三个主要部分组成 - 概念模型,映射和存储模型。

    概念模型(Conceptual Model):  概念模型包含模型类及其关系。这将独立于您的数据库表设计。

    存储模型(Storage Model):存储模型是数据库设计模型,包括表,视图,存储过程及其关系和密钥。

    映射(Mapping):映射由有关概念模型如何映射到存储模型的信息组成。

    LINQ to Entities: LINQ to Entities是一种用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。你可以在这里使用你的LINQ技能。

    实体SQL:实体SQL是另一种查询语言,就像LINQ to Entities一样。然而,这比L2E稍微难一些,开发者需要单独学习。

    对象服务:对象服务是访问数据库中的数据并将其返回的主要入口点。对象服务负责实现,这是将从实体客户端数据提供者(下一层)返回的数据转换为实体对象结构的过程。

    实体客户端数据提供者:此层的主要职责是将L2E或实体SQL查询转换为底层数据库可以理解的SQL查询。它与ADO.Net数据提供者通信,而ADO.Net数据提供者又从数据库发送或检索数据。

    ADO.Net数据提供程序:该层使用标准的ADO.Net与数据库进行通信。

    EF版本:

     现在最高的版本是EF6,我们的例子都是EF6的。

     

    准备好数据库:

    在上图中可以看到,为了演示目的,示例中的SchoolDB数据库包含具有以下关系的表格。

    • 一对一:学生和学生地址有一对一的关系,例如。学生有零个或一个StudentAddress。
    • 一对多:标准和教师有一对多的关系,例如。许多教师可以与一个标准联系起来。
    • 多对多:学生和课程使用StudentCourse表格,其中StudentCourse表格包含StudentId和CourseId,具有多对多的关系。所以一个学生可以参加很多课程,一个课程也可以有很多学生。

    SQL下载:  SQL生成语句.zip

  • 相关阅读:
    《Unity3D-设置子弹发射的代码》
    《Unity3D-控制角色受伤的时候身体颜色变化的代码》
    《Unity3D-鼠标控制游戏人物的方向的代码》
    C++基础学习笔记001
    C++学习笔记
    JSON中使用jsonmapper解析的代码和步骤 学习笔记
    JSON学习笔记
    FileInfo文件的一些操作代码
    UDPClient的服务端和客户端的通信代码
    TCPListener和TCPClient之间的通信代码
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/7807970.html
Copyright © 2020-2023  润新知