在哪里放置生成的EF 4文件?

时间:2011-04-09 17:40:41

标签: c# architecture entity-framework-4 database-first

我的网络应用程序中有3个csprojs:

  • UI.Web
  • Bll.Web
  • DAL.Web

UI.Web引用Bll.Web和Bll.Web引用DAL.Web。

DAL.Web非常简单,只包含以下方法:

GetDataTableFromSP
GetScalarFromSP
ExecuteScalarFromSP

我使用EF4反向设计了我的数据库,并使用了自我跟踪实体模板。现在我留下3个文件:

  1. Model.Context.tt
  2. Model.tt
  3. Model.edmx
  4. 我的问题是,在我的项目结构中,我在哪里放置这些以便保持我的n层方法?

    谢谢!

2 个答案:

答案 0 :(得分:1)

这完全取决于个人偏好。

例如,我总是将这些文件和模型放在我的应用程序的DAL方面。但我还需要访问生成的实体,例如Student,Grade或StaffType。所以我从BRL中引用了DAL。

在UI中我需要知道生成的实体,因为通常我给表单一个实体并填充该对象的表单字段。所以我也从UI中引用了BRL。

答案 1 :(得分:1)

我会将T4模板(以及生成的实体)放在自己的Model程序集中,并在所有层中引用。您只需将Model.tt移动到新程序集,使用其中一个编辑器在VS中打开它,这样您就可以看到T4代码。搜索Model.edmx并更新路径,使其正确解析到包含Model.edmx的DAL.Web项目磁盘上的物理位置。

这使您能够在架构/模型发生变化时重新运行T4模板,但通过不让UI需要依赖DAL来保持关注点的分离。

刚刚找到以下内容,有助于解释此here

相关问题