0

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

  • 用户界面.Web
  • Bll.Web
  • DAL网站

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

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

GetDataTableFromSP
GetScalarFromSP
ExecuteScalarFromSP

我使用 EF4 对我的数据库进行了逆向工程,还使用了自我跟踪实体模板。现在我剩下 3 个文件:

  1. 模型.上下文.tt
  2. 模型.tt
  3. 模型.edmx

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

谢谢!

4

2 回答 2

1

这完全取决于个人喜好。

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

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

于 2011-04-09T17:46:01.463 回答
1

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

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

刚刚发现以下内容有助于在此处解释这一点

于 2011-04-09T18:24:06.093 回答