实体框架概述

实体框架是一组技术,在ADO.NET支持面向数据的软件应用程序的开发。架构师和开发面向数据的应用需要实现两个非常不同的目标奋斗。他们必须建模的实体,关系和逻辑,他们正在解决的业务问题,而且他们还必须与用于存储和检索数据的数据引擎。数据可能跨多个存储系统,每个都有自己的协议,对应用程序代码编写效率和维护的要求,甚至是应用程序与一个单一的存储系统必须兼顾的存储系统的要求。

实体框架使开发人员工作的形式与数据的域特定的对象和属性,如客户和客户地址,而不必关心自己的数据存储与底层数据库表和列。实体框架,开发人员可以工作在更高层次上的抽象,当他们处理数据,并能创建和维护面向数据的应用比在传统应用中使用更少的代码。由于实体框架是。NET框架的一个组成部分,实体框架应用程序可以运行在任何一台电脑上的。NET Framework 3.5 SP1版本开始,已安装。


给生命模型

当建立一个应用程序或服务是一个长期的,常用的设计方法部门的应用程序或服务分为三个部分:领域模型,逻辑模型和物理模型。域模型定义在系统中被建模的实体和关系。一个关系型数据库的逻辑模型标准化实体和关系到表的外键约束。通过指定存储的详细信息,如分区和索引的物理模型解决一个特定的数据引擎的能力。

由数据库管理员的物理模型细化,以提高性能,但程序员在编写应用程序代码主要局限于自己的工作通过编写SQL查询和调用存储过程的逻辑模型。域模型通常是用来作为一种工具,用于捕捉和通信应用程序的要求,经常作为惰性图表查看,并讨论在项目的早期阶段,然后被遗弃。很多开发团队跳过创建一个概念模型,并开始在关系数据库中指定表,列和键。

实体框架提供了生活的模型,使开发人员能够在域模型(称为概念模型中的实体框架)查询实体和关系,同时依托实体框架将这些操作的数据源特定的命令。这将释放硬编码的应用程序依赖于一个特定的数据源。


与实体数据模型工具,概念模型,存储模型,以及两者之间的映射工作时表示,基于XML的模式,并有相应的扩展名的文件中定义的:

  • 概念架构定义语言(CSDL)定义的概念模型。CSDL是实体框架的实体数据模型的实施。文件扩展名是。CSDL。

  • 存储架构定义语言(SSDL)定义存储模型,该模型也被称为逻辑模型。文件扩展名是。SSDL。

  • 映射规范语言(MSL)定义的存储和概念模型之间的映射。文件扩展名是。MSL。
  • 存储模型和映射,可以根据需要进行更改,而不需要更改的概念模型,数据类或应用程序代码。由于存储模型提供程序特定的,您可以在不同数据源的一致的概念模型。

    实体框架使用这些模型和映射文件的创建,读取,更新和删除操作,对实体和关系的概念模型中的数据源中的等效操作。实体框架支持映射在概念模型中的实体数据源中的存储过程。


    将对象映射到数据

    面向对象的程序设计与数据存储系统提出了挑战。虽然班级组织经常反映了组织关系数据库表,适合的是不完美的。多个规范化的表通常对应于一个单独的类和类之间的关系,往往代表不同的表之间的关系表示。例如,代表客户的销售订单,一个订单类可能会使用一个属性,它包含一个客户类的一个实例的引用,而数据库中的一行包含一个顺序表的外键列(或一组列)与价值的客户表中的主键对应的值。一个客户类可能有一个名为订单包含的命令类的实例的集合,而客户数据 ​​库中的表有没有可比性列的。实体框架为开发人员提供的灵活性来表示这样的关系,或者更准确地模拟关系,因为它们是在数据库中表示。

    现有的解决方案,试图弥合这一差距,这是经常被称为“阻抗失配”,仅面向对象类和属性映射到关系表和列。采取这种传统的方式,而是实体框架的映射关系表,列,在逻辑模型中的实体和关系的概念模型和外键约束。无论是在定义对象的逻辑模型和优化,实现了更大的灵活性。实体数据模型工具生成扩展的数据类的概念模型的基础上。这些类是局部类,可扩展的开发人员添加的其他成员,。默认情况下,一个特定的概念模型所产生的派生类从基类,提供服务,物质实体为对象,跟踪和保存更改。开发人员可以使用这些类来工作的实体和作为对象关系协会的关系。开发人员还可以自定义生成的类的概念模型。


    实体数据访问和更改

    以上只是另一个对象关系映射解决方案,实体框架是从根本上使应用程序能够访问和更改数据,表示在概念模型中的实体和关系。实体框架使用的模型和映射文件中表示的实体类型在概念模型中的数据源特定的查询翻译对象的查询。查询结果被物化为实体框架管理的对象。实体框架提供了以下方式查询的概念模型和返回对象:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值