EF5 DBContext与Entity分离

来源:互联网 发布:安卓手机数据迁移软件 编辑:程序博客网 时间:2024/06/05 05:23

开发环境:vs2012+EF5+Mysql

开发模式:DB first

源代码下载地址:http://download.csdn.net/download/cdblh/9862768


EF的全称是Entity Framework,是微软推出的一款ORM框架,通过面向对象的思想抽象数据库访问层,自动生成与数据库表结构的映射关系。默认生成的.edmx文件下同时生成了.context.tt和entity.tt文件,接下来的操作是要讲entity.tt的数据实体文件分离到独立的类库项目中去。

一、使用Mysql客户端创建Coder表,表结构如下:


二、新建空解决方案EF,同时新增两个类库项目,分别是EF.DBContext和EF.Entities,如图所示:


三、右击DBContext项目,添加-新增项-数据-ADO.NET实体数据模型项目,按以下操作完成:


来自已设计好的数据库表结构,DB First模式:



完成后,项目结构如下:


四、从ef.dbcontext项目中复制.edmx文件到ef.entities项目中:


在ef.entities项目中粘贴,完成后如下:


然后删除如下图所示被选择的文件,因为已经分离了,各自不需要对方的存在:


删除后,在ef.dbcontext项目中,右击model1.edmx文件,属性窗口中设置生成操作的值为无,目的是为了避免每次生成时,又默认生成相应的数据实体.tt


设置完成后,右击项目ef.dbcontext重新生成,此时报如下错误:


这是因为之前已删除默认生成的实体文件model1.tt,这是该项目需要引用ef.entities,之后生成成功。到此,context与entity已分离到不同的项目中。

五、注意:

当数据库表结构有更新时,分别在两个项目中双击.edmx文件打开,右击菜单-从数据库更新模型,这样在ef.context项目中自动更新.context.tt代码;在ef.entities项目中自动更新.tt实体类代码。












阅读全文
0 0