【问题标题】:Enterprise N-Tier Setup企业 N 层设置
【发布时间】:2015-01-30 17:29:05
【问题描述】:
我的任务是切换框架并选择 EF 作为 ORM,但我一直在尝试弄清楚如何做到这一点。我了解 N-Tier 的基础知识,但在我们公司,我们支持 15 种以上的应用程序,我试图了解我们是否应该为每个项目提供单独的 .EDMX 文件。
如果是这样,这些都应该在同一个项目中吗?它们会是一个 DAL 项目和多个 .EDMX 文件,还是只有一个包含 100 多个表的大型 .EDMX 文件?
【问题讨论】:
标签:
c#
entity-framework
n-tier-architecture
【解决方案1】:
以下是我的建议:
- 为每个应用程序提供不同的解决方案。每个解决方案都有自己的 EDMX 文件,该文件将驻留在 DAL 中。
- 您可以为数百个表创建一个 EDMX,但如果应用程序有那么多表,最好为每个子功能创建一个单独的 EDMX。在这种情况下,您可以在同一个 DAL 项目中拥有多个 EDMX。
拆分 EDMX 的原因有多种:
- Entity Framework 使用 ObjectContext 来跟踪更改。如果它要跟踪 100 多个实体,它必须做更多的工作并且性能会下降。将每个 edmx 限制在较少数量的表中可以提供更好的性能。
- 人们很可能会对 EDMX 进行相互冲突的更改。您将不得不不必要地考虑合并更改,即使它不是您的功能部分。如果每个子团队都在自己的 EDMX 上工作,其他子团队不会有这么大的影响。
希望这会有所帮助。