我有一个名为MyApp.DataAccess的项目,它包含多个数据库上下文。这开始是一个上下文,并已增长到三个(我的应用程序所需的所有单独的数据库)。你可以想象我也有每个初始化程序类,我现在也尝试使用迁移。我可以看到这会使我的MyApp.DataAccess项目变得非常混乱。
我还有一个名为MyApp.Model的项目,它包含模型类,这些模型类通常按照每个上述Context中的用途组织在文件夹中。
我正在努力学习如何最好地组织多个DbContexts和Model类。
我的直觉告诉我选项1,但最佳做法是什么?
为每个DbContext创建一个MyApp.DataAccess。[ContextName]项目,该项目包含DbContext,迁移和相关的Model类。最终,我仍然需要一个MyApp.Model项目来表示非数据库模型类。
为每个DbContext创建一个MyApp.DataAccess。[ContextName]项目,该项目仅包含DbContext和Migrations;继续为所有模型类使用MyApp.Model(在文件夹和子命名空间中组织)。
什么都不做 - 一个包含多个DbContexts,多次迁移等的MyApp.DataAccess;一个MyApp.Model,包含按文件夹组织的多个数据库的模型。
最佳做法/理想方法是什么?
答案 0 :(得分:1)
你的问题应该从“为什么我应该有不同的DbContexts”开始。在大多数情况下,不同的上下文意味着不同的数据模型,不同的 - 不相关的 - 责任,因此应该尽可能地分开。这意味着不同的组件都会出现。