企业 N 层设置

Enterprise N-Tier Setup

我的任务是切换框架并选择 EF 作为 ORM,但我一直在努力弄清楚如何做到这一点。我了解 N 层的基础知识,但对于我们公司,我们支持 15 个以上的应用程序,我想了解我们是否应该为每个项目提供单独的 .EDMX 文件。

如果是这样,那些应该都在同一个项目中。他们会是一个 DAL 项目和多个 .EDMX 文件,还是只有一个包含我们 100 多个表的大型 .EDMX 文件?

以下是我的推荐:

  1. 每个应用程序都有不同的解决方案。每个解决方案都有自己的 EDMX 文件,该文件将驻留在 DAL 中。
  2. 您可以为数百个表创建一个 EDMX,但如果应用程序有那么多表,最好为每个子功能创建一个单独的 EDMX。在这种情况下,您可以在同一个 DAL 项目中拥有多个 EDMX。

拆分 EDMX 有多种原因:

  1. Entity Framework 使用 ObjectContext 来跟踪更改。如果它跟踪 100 个实体,它必须做更多的工作并且性能会下降。将每个 edmx 限制为较少数量的表可提供更好的性能。
  2. 人们很可能会对 EDMX 进行相互冲突的更改。您将不得不不必要地考虑合并更改,即使这不是您的功能部分。如果每个子团队都在自己的 EDMX 上工作,那么其他子团队将不会产生如此大的影响。

希望对您有所帮助。