微软官方提供的ORM技术的实现就是EF(Entity Framework)框架。EF的模式有三种分别是:Database First  数据库先行 ,Model First 模型先行 , Code First 代码先行 , 最后介绍的就是POCO 它的全称:Plain Old CLR Object,简单传统的公共语言运行时对象。

  这里简单介绍一下 Code First 模式:Code First是指“代码优先”或“代码先行”。这种方式在上下文设计模式中非常有用。使用Code First模式,可以专注于数据上下文的设计,根据需要,为一个数据上下文的对象创建类集合,而不是首先来设计数据库,然后来根据数据库设计实体类,Code-First 模式将会基于编写的类和配置,自动创建模型和数据库。

  Code First模式的核心是,我们只需要编写代码,来自动创建数据模型和数据库,模型和数据库直接通过C#类来定义,而并不使用基于XML的edmx文件。如果采用Database First模式生成代码,需要使用EF设计器辅助工具,而使用Code First可以直接通过使用最简单的类来定义模型。

  三种模式如图:

        

  ORM的全称为“对象关系映射”(Object Relational Mapping)。ORM是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作实体对象的属性和方法。ORM技术是在对象和关系之间搭建了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。

  ORM方法论基于的三个核心原则:

  1.简单:以最基本的形式建模数据。
  2.传达性:数据库结构被任何人都能理解的语言文档化。
  3.精确性:基于数据模型创建正确标准化的结构。

  ORM技术简单示意图

            

  ORM的优点:ORM通过关系数据和对象之间的映射,自动生成SQL语句,将程序员从繁琐的数据库操作代码中解脱出来,将精力放在对具体业务逻辑上。只需编写一次代码,做较少的修改,就能适应其他类型的数据库。

  由于ORM技术在极大程度上提升了开发效率,因此众多厂商和开源社区都提供了对ORM的实现。微软官方提供的ORM技术的实现就是EF(Entity Framework)框架。这套框架是基于ADO.NET的ORM框架。

  EF框架的主要特点:支持多种数据源,支持存储过程的映射,提供Visual Studio集成工具,执行可视化操作。

    1.这套框架是基于ADO.NET的ORM框架。

    2.ORM用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。

    3.ORM技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。

    4.ORM方法论基于三个核心原则。

      简单:以最基本的形式建模数据。

      传达性:数据库结构被任何人都能理解的语言文档化。

      精确性:基于数据模型创建正确标准化的结构。

    5.ORM的具体含义是:O对应程序中的实体类;R对应数据库中的关系表;M表示程序中的对象和数据库中关系表数据的映射关系。

  最后就是EF框架支持“Database First”、“Model First”和“Code First”三种方式来完成数据建模。Database First模式称为“数据库优先”或“数据库先行”模式,即先创建数据库,后生成数据模型。在这种模式下,要求数据库已经创建完成并可以正常使用,然后使用Visual Studio中的EF模型设计器,根据已有的数据库生成数据模型。

最新文章

  1. 替换html元素
  2. Python 中 sqlite3的使用
  3. Makecert.exe(证书创建工具)
  4. appium-向右滑动定位
  5. node在安装完成后,出现node不是内部或外部命令
  6. BZOJ 4198 荷马史诗
  7. 标准库 - fmt/scan.go 解读
  8. [Linux]关机和重启命令
  9. hdoj 1686 Oulipo【求一个字符串在另一个字符串中出现次数】
  10. poj2392 Space Elevator(多重背包)
  11. sqlserver资源
  12. 树莓派小车By 树莓派爱好者ITJoker(通过C socket通信实现树莓派视频小车)(二)
  13. C#中使用Bogus创建模拟数据
  14. cordova闪屏插件插件使用:cordova-plugin-splashscreen
  15. SHELL脚本学习-练习写一个脚本4
  16. Oracle行列转换case when then方法案例
  17. Brup Suite 渗透测试笔记(六)
  18. 一脸懵逼学习Nginx及其安装,Tomcat的安装
  19. 第4章 Selenium2-java WebDriver API (三)
  20. 在MongoDB中执行查询、创建索引

热门文章

  1. Golang实现requests库
  2. vim 常用指令
  3. swust oj 1016
  4. 小程序页面跳转传参参数值为url时参数时 会出现丢失
  5. python 视图 (FBV、CBV ) 、Request 和Response对象 、路由系统
  6. go 使用 c接口
  7. [Swift]LeetCode82. 删除排序链表中的重复元素 II | Remove Duplicates from Sorted List II
  8. [Swift]LeetCode277. 寻找名人 $ Find the Celebrity
  9. [Swift]LeetCode424. 替换后的最长重复字符 | Longest Repeating Character Replacement
  10. [Swift]LeetCode459. 重复的子字符串 | Repeated Substring Pattern