zoukankan      html  css  js  c++  java
  • Entity Framework 简介

    • Entity Framework是个什么鬼?
      • Entity Framework  (EF ) 是面向对象思想的产物。
      • 可以跨平台使用(可以在Windows,Linux和Mac上运行)。
      • 是基于ADO.NET封装的一种数据对象模型。
      • 它可以让应用程序以对象化的方式去连接和访问数据库。
      • 它可以将数据库转化成应用程序对象,转化逻辑大致如下:
        • 数据库对象 ===转化成===>  应用程序对象
        • 数据字段    ===转化成===>  属性
        • 数据关系    ===转化成===>  结合属性
      • 它支持 LINQ 查询、更改跟踪、更新和架构迁移。
    • Entity Framework 组织结构图

    • 什么是EDM?
      • EDM 即实体数据模型(Entity Data Model),它是一种XML格式的纯文本文件,用以描述数据结构的概念,以统一的概念模型映像不同类型的数据源,这使得数据操作与底层的来源脱钩,如此一来,开发人员便能通过单个数据模型进行数据处理,避免接触真正的数据结构。

      • 实体数据模型的内容以下三部分组成:
        • 概念模式(CSDL,Conceptual Schema Definition Language,概念模式定义语言):描述实体模型的主要内容,各种模型元素包含实体类型、属性以及关联类型,均通过映象的标签在这里设置。EF 通过概念模式定义语言——Conceptual Schema Definition Language (CSDL) 来定义。
        • 映射(MSL,Mapping Specification Language,映射规范语言):描述数据库的数据表和字段与概念模型中的实体和属性成员的映射关系。以映射规范语言——Mapping Specification Language(MSL) 来定义这部分的内容。
        • 存储模型(SSDL,Store Schema Definition Language,存储结构定义语言):存储原始数据库的内容结构信息,概念模型通过此模型的信息映象到底层数据库的实体结构,以存储结构定义语言——Store Schema Definition Language(SSDL) 来定义。
        • 以 “XML(文本)编辑器” 的方式打开后缀名以 .edmx 为结尾的文档,在 <edmx:Runtime> 节点内 我们可以三个模式的表现形式。

        • 打开项目路径 “objDebugedmxResourcesToEmbed”,可以看到三个不知道是什么鬼(以数据模型命名)的文件。

      • EMD 用三种关键概念描述数据结构:实体类型(Entity Type)、关联类型(Association Type)和 属性(Property)。 
        • 实体类型:通过EDM描述数据结构基础的构建区块便是实体类型,它是以对象的形式来表示各种数据结构。每一个实体类型都必须有一个独一无二的实体键。每一个实体类型有一组实体集(EntitySet),类似于数据表中的数据集。
        • 关联类型:类似于数据表的关联结构,两个实体类型对象之前同样存在关联结构,而实体之间的关联则是用关联类型来描述的。每一组关联由两个关联端点所组成,每个端点有个Association End Multiplicity 来表示关联数量(用来表示 一对多、多对多等关联类型)。
        • 属性:实体类型的结构与特性通过属性来实现关联(可以将其想象成数据表的字段)。

      • 实体类型、关联类型与属性是构建模型最为关键的概念,而描述实体数据模型的具体内容则是通过所谓的Domain-Specific Language(DSL,领域特定语言)来实现,Entity  Framework用来定义概念模型的DSL是一种XML格式语法,称为Conceptual Schema Definition Language(CSDL,概念模式定义语言)。

      • 实体数据模型是以 .edmx 为扩展名的XML格式的纯文本文件。它包含存储模型、概念模型以及这两种模型的相关设置信息。
  • 相关阅读:
    Python补充06 Python之道
    java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)
    java io系列01之 "目录"
    字符编码(ASCII,Unicode和UTF-8) 和 大小端
    Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(7) TimeZone
    Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(6) Locale
    Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(5) SimpleDateFormat
    Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(4) DateFormat
    Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(3) Date
    Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口
  • 原文地址:https://www.cnblogs.com/LittleBai/p/13894182.html
Copyright © 2011-2022 走看看