【问题标题】:Where to put generated EF 4 files?将生成的 EF 4 文件放在哪里?
【发布时间】:2011-08-02 04:15:42
【问题描述】:

我的网络应用程序中有 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. 模型.tt
  3. Model.edmx

我的问题是,在我的项目结构中,我应该将这些放在哪里,以便保持我的 n 层方法?

谢谢!

【问题讨论】:

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


【解决方案1】:

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

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

刚刚发现以下内容有助于解释这一点 here

【讨论】:

  • 有道理。这就是我想要的。
【解决方案2】:

这完全是个人喜好问题。

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

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

【讨论】:

  • 所以这些文件都应该放在一起?
  • @subt13:老实说,我从来没有检查过如果我把文件弄乱了会发生什么。
猜你喜欢
  • 2014-09-12
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 2013-10-15
  • 2015-08-19
  • 2012-12-23
  • 2012-01-31
  • 1970-01-01
相关资源
最近更新 更多