EF5 DBContext与Entity分离

本文介绍了如何在VS2012+EF5+Mysql环境下,采用DB First模式将数据访问层的DbContext与实体类进行分离。通过创建两个独立的类库项目,一个用于DbContext,另一个用于实体类,实现代码组织的清晰。详细步骤包括创建项目、添加数据模型、复制编辑文件,并处理更新数据库表结构时的代码同步问题。

开发环境: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实体类代码。












评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿花粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值