解决方案:

1. 新建Common层。

2. 新建Dao层。

    第一步:在Dao层新增“ADO.NET实体数据模型”。

问题:为什么把“ADO.NET实体数据模型”放到Dao层,而不是Entity层?

回答:因为实体框架的CRUD操作是要引用entity framework DLL的,并且是放在Dao层。特别是BaseDao.cs文件。

ef搭建三层架构 ef框架搭建_实体数据模型

第二步:在Entity层新增“EF 6.0 DbContext 生成器”,也就是把Dao层生成的实体转移到Entity层。这时删除Dao层的实体,并修改.tt模板文件的inputFile的路径。

ef搭建三层架构 ef框架搭建_Common_02

先删除Entity层生成的Context.tt,并修改Entity层的模板(model.tt)文件后保存,这是会生成Dao层.edmx文件指定的实体。

ef搭建三层架构 ef框架搭建_编码_03

删除Dao层的实体,并修改context.tt模板的名称空间(引用Entity层)。

ef搭建三层架构 ef框架搭建_Common_04

另外添加Contract层和Service层。

ef搭建三层架构 ef框架搭建_编码_05

 

这样搭建EF框架完成。