0

我有一个名为 MyApp.DataAccess 的项目,其中包含多个数据库上下文。这从一个上下文开始,已经发展到三个(我的应用程序需要所有单独的数据库)。正如你可以想象的那样,我也有每个初始化器类,我现在也在尝试使用迁移。我可以看到这真的会弄乱我的 MyApp.DataAccess 项目。

我还有一个名为 MyApp.Model 的项目,其中包含模型类,这些模型类通常根据它们在上述每个上下文中的使用情况组织在文件夹中。

我正在为如何最好地组织多个 DbContexts 和 Model 类而苦苦挣扎。

我的直觉告诉我选项 1,但最佳做法是什么?

  1. 为每个包含 DbContext、迁移和相关模型类的 DbContext 创建一个 MyApp.DataAccess.[ContextName] 项目。最终,我仍然需要一个 MyApp.Model 项目来表示非数据库模型类。

  2. 为每个仅包含 DbContext 和迁移的 DbContext 创建一个 MyApp.DataAccess.[ContextName] 项目;继续将 MyApp.Model 用于所有模型类(按文件夹和子命名空间组织)。

  3. 什么都不做——一个带有多个 DbContext、多个迁移等的 MyApp.DataAccess;一个 MyApp.Model,其中包含按文件夹组织的多个数据库的模型。

最佳实践/理想方法是什么?

4

1 回答 1

1

你的问题应该从“为什么我应该有不同的 DbContexts”开始。在大多数情况下,不同的上下文意味着不同的数据模型、不同的——不相关的——职责,因此应该尽可能地分开。这意味着要执行不同的程序集。

于 2012-08-07T19:31:58.047 回答