Entity Framework 初级篇1_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Entity Framework 初级篇1

Entity Framework 初级篇1

 2017/1/9 5:38:15  博为峰网校  程序员俱乐部  我要评论(0)
  • 摘要:最近在学习研究微软的EF,跟着博为峰网校上的《手把手带你玩转EntityFramework6》学了学,很有意思,概括一下的话EntityFramework是微软官方提供的ORM工具,让开发人员可以告别繁琐的数据库操作,将更多的时间放到业务逻辑层代码上,可以提高数据库访问的开发效率,降低开发周期。EF很适合.net人群,并且非常渴望告别生硬的ado.net操作。后续有什么好的内容或者学习笔记,我会再整理出来。先给大家分享一下我对EF的一些认识。在
  • 标签:Framework

  最近在学习研究微软的EF,跟着博为峰网校上的《手把手带你玩转Entity Framework 6》学了学,很有意思,概括一下的话Entity Framework是微软官方提供的ORM工具,让开发人员可以告别繁琐的数据库操作,将更多的时间放到业务逻辑层代码上,可以提高数据库访问的开发效率,降低开发周期。EF很适合.net人群,并且非常渴望告别生硬的ado.net操作。后续有什么好的内容或者学习笔记,我会再整理出来。先给大家分享一下我对EF的一些认识。

  在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品。用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据的应用程序所需的代码量并减轻维护工作。Entity Framework 应用程序有以下优点:

  • 应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
  • 应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
  • 可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
  • 开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
  • 多个概念性模型可以映射到同一个存储架构。
  • 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。

  实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。在EF中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文件进行定义。

  • 概念架构定义语言文件(.csdl ) -- 定义概念模型。
  • 存储架构定义语言文件(.ssdl ) -- 定义存储模型(又称逻辑模型)。
  • 映射规范语言文件(.msl ) -- 定义存储模型与概念模型之间的映射。

  实体框架 使用这些基于 XMl 的模型和映射文件将对概念模型中的实体和关系的创建、读取、更新和caozuo.html" target="_blank">删除操作转换为数据源中的等效操作。EDM 甚至支持将概念模型中的实体映射到数据源中的存储过程。它提供以下方式用于查询 EDM 并返回对象:

  • LINQ to Entities -- 提供语言集成查询(LINQ) 支持用于查询在概念模型中定义的实体类型。
  • Entity SQl -- 与存储无关的 SQl 方言,直接使用概念模型中的实体并支持诸如继承和关系等 EDM 功能。
  • 查询生成器方法 --可以使用 LINQ 风格的查询方法构造 Entity SQl 查询。

  下面,来学习EF的基本使用方法。软件环境:

  • Visual Studio 2008 +SP1
  • SQl Server2005/2008

  首先,建立一个名为“EFProject”的解决方案,然后添加一个名为“EFModel”的类库项目。

  接着,在EFModel项目中,添加“ADO.NET Entity Data Model ”项目,如下图所示:

  名称取为“NorthWindEF.edmx”,然后点击“添加”。然后,在后面的步骤中,数据库选择“NorthWind”后,在选择影射对象是,把表、试图、存储过程全部都选上,其他的均保存默认的即可。

  好了,数据模型生成完毕。

  最后,谈谈我认为的一些缺点:

  • Edmx包含了所有对象的csdl,ssdl,msl文件,过于庞大,如果要手动修改这个文件,一不小心,眼睛看花了,就改错了。(和数据集一样的毛病)。
  • 目前EF支持表、试图、存储过程,其他的对象不支持,而且对使用存储过程有很多限制(目前有EFExtension提供了更多对象的支持)。
  • 除了MS SQl Server可直接提供这种可视化的设计界面外,其他的数据库目前还没有提供可视化设计界面(但可以自己来实现,后面介绍)。
  • 性能问题。(网上看到有说比ADO.Net慢700百,又有人说比ADO.net快的,具体情况我还没测试过, 但我觉得像这个些类型的框架,性能肯定是比上原生态的ADO.net慢)
发表评论
用户名: 匿名