3

我遇到一个模型与 Entity Framework 认为的当前版本不同步的问题,所以我清除了所有迁移并按照这篇文章重新开始。

复位后。我去启用实体框架,它给出了这个错误。

在程序集“Proj”中发现了一种以上的上下文类型。要为 Proj.Models.UsersContext 启用迁移,请使用 Enable-Migrations -ContextTypeName Proj.Models.UsersContext。要为 Proj.Models.InjuriesContext 启用迁移,请使用 Enable-Migrations -ContextTypeName PamperWeb.Models.InjuriesContext。...对于我所有的情况

我能够启用第一个上下文用户,但是当我尝试启用另一个上下文时,我收到一条错误消息

已在项目“Proj”中启用迁移。要覆盖现有的迁移配置,请使用 -Force 参数。

显然,我对 MVC 和实体框架的工作方式还有很长的路要走。我在每个模型类中都设置了上下文。我应该只有一个上下文和那个上下文中的所有数据库集吗?如果是这样,这个上下文与哪个模型类文件有关吗?我当前的所有上下文都指向同一个数据库。

4

1 回答 1

4

在正常的应用程序中,您应该为所有模型类提供带有数据库集的单一上下文。上下文类应该在它自己的文件中。上下文构成了您的整个模型,并让您可以访问数据库。它提供了许多开箱即用的功能,但该功能仅适用于在您的上下文中注册的模型类。如果将模型类划分为单独的上下文,则在处理从不同上下文加载的实体时会失去一些开箱即用的功能。

于 2013-01-10T08:29:33.627 回答