entity framework 6.0 入门系列 第一篇

好几年前接触过一些ef感觉不是很好用,废弃。但是 entity framework 6.0是经过几个版本优化过的产物,性能和功能不断完善,开始学习。

 

ef ,全称entity framwork。就是微软以ado.net为基础发展的所谓orm(对象关系映射框架,或者说是数据持久化框架)。

简单的来说就是根据实体对象操作数据表中数据的一种面向对象的操作框架,具体的底层也是调用ado.net。

ef支持sql server,mysql,oracle,db2等数据库上使用,我们可以将数据作为业务对象和实体来进行处理,开发者可以使用linq来操作和查询数据。

最终会生成sql语句来执行,可以打开sql server profiler来查看具体生成的每一条sql语句; 

entity framework  有三种领域建模方式,code first,model first,及database first;

先简单描述下这三种模式的区别

 

1.database first是基于已存在的数据库,利用某些工具(如vs提供的ef设计器)创建实体类,数据库对象与实体类的匹配关系等,你也可以手动修改这些自动生成的代码及匹配文件。也就是从一个数据库开始,然后生成实体框架和相应代码。我们我们又dba来创建数据库或者已经有存在的数据库,这种方式作为首选;

2.model first 是先利用某些工具(如vs的ef设计器)设计出可视化的实体数据模型及他们之间的关系,然后再根据这些实体、关系去生成数据库对象及相关代码文件。

3.code first 这种方式需要先写一些代码,如实体对象,数据关系等,然后根据已有的代码描述,自动创建数据对象。但其实这种方法与model first是非常类似的。我们自己写的代码,其实就是用代码表示实体模型,而model first是用可视化的方式描述了实体模型。这个是最受欢迎的领域建模方式,比较灵活;

 

这三种方式各有利弊,使用过程中我们要按实际需求来选择。这些工具的出现和使用,大大提高了开发人员的开发速度,使得数据库、模型等出现了复用、扩展的可能,在应对变化方面也做了足够的工作。这些工具所体现的服务思想更提醒我们要全方位去考虑问题,在产品中做好应对变化的措施。