代码的情况下更改概念性模型与特定于存储的架构之间的映射。
开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
多个概念性模型可以映射到同一个存储架构。语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
实体框架E
tityFramework是ADONET中的一组支持开发面向数据的软件应用程序的技术。在EF中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文件进行定义。
f
概念架构定义语言文件csdl定义概念模型。存储架构定义语言文件ssdl定义存储模型(又称逻辑模型)。映射规范语言文件msl定义存储模型与概念模型之间的映射。
实体框架使用这些基于XML的模型和映射文件将对概念模型中的实体和关系的创建、读取、更新和删除操作转换为数据源中的等效操作。EDM甚至支持将概念模型中的实体映射到数据源中的存储过程。它提供以下方式用于查询EDM并返回对象:
LINQtoE
tities提供语言集成查询LINQ支持用于查询在概念模型中定义的实体类型。
E
titySQL与存储无关的SQL方言,直接使用概念模型中的实体并支持诸如继承和关系等EDM功能。
查询生成器方法可以使用LINQ风格的查询方法构造E
titySQL查询。
下图演示用于访问数据的实体框架体系结构:
f下面,来学习EF的基本使用方法。软件环境::
VisualStudio2008SP1SQLServer20052008
首先,建立一个名为“EFProject”的解决方案,然后添加一个名为“EFModel”的类库项目。如下图所示。
接着,在EFModel项目中,添加“ADONETE
tityDataModel”项目,如下图所示:
f名称取为“NorthWi
dEFedmx”然后点击“添加”。然后,在后面的步骤中,数据库选择“NorthWi
d”后,在选择影射对象是,把表、试图、存储过程全部都选上,其他的均保存默认的即可。最终生成的结果如下图所示。
好了,数据模型生成完毕。最后,谈谈我认为的一些缺点:
Edmx包含了所有对象的csdl,ssdl,msl文件,过于庞大,如果要手动修改这个文件,一不小心,眼睛看花了,就改错了。(和数据集一样的毛病)。
f
目前EF支持表、试图、存储过程,其他的对象不支持,而且对使用存储过程有很多限制(目前有EFExte
sio
提供了更多对象的支持)。
除了MSSQLServer可直接提供这种可视化的设计界面外,其他的数据库目前还没有提供可视化设计界面(但可以自己来实现,后面介绍)。
性能问题。(网上看到有说比ADONet慢700百,又有r