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

发布于 2024-10-31 05:46:47 字数 453 浏览 0 评论 0 原文

我的 Web 应用程序中有 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

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

谢谢!

I have 3 csprojs in my web application:

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

UI.Web references Bll.Web and Bll.Web references DAL.Web.

DAL.Web is very simple and only contains methods like:

GetDataTableFromSP
GetScalarFromSP
ExecuteScalarFromSP

I reverse engineered my DB using EF4 and also used the Self-Tracking Entities template. Now I am left with 3 files:

  1. Model.Context.tt
  2. Model.tt
  3. Model.edmx

My question is, within my project structure, where do I put these so that I maintain my n-tier approach?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一念一轮回 2024-11-07 05:46:48

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

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

刚刚发现以下内容有助于解释这个此处

I would put the T4 template (and therefore the generated entities) in its own Model assembly that is referenced across all the layers. You just need to move the Model.tt to the new assembly, open it in VS using one of the editors so you can see the T4 code. Search for Model.edmx and update the path so it resolves correctly to the physical location on disk of your DAL.Web project that contains the Model.edmx.

This gives you the ability to rerun the T4 template should the schema/model change but maintain separation of concerns by not having the UI need to take a dependency on the DAL.

Just found the following that helps explain this here

ゃ人海孤独症 2024-11-07 05:46:48

这完全取决于个人喜好。

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

在 UI 中,我需要了解生成的实体,因为通常我为表单提供一个实体,然后它从该对象填充表单字段。因此,我还从 UI 中引用了 BRL。

It's all a matter of personal preference.

For example I always put those files and the model in the DAL aspect of my application. But I also need access to the generated entities, such as Student, Grade or StaffType. So I reference DAL from the BRL.

And in the UI I also need to be aware of the generated entities because usually I give a form an Entity and it populates the form fields from that object. So I also reference the BRL from the UI.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文