了解实体框架启用迁移和上下文

时间:2013-01-09 18:57:46

标签: asp.net-mvc-4 entity-framework-5

我的issues模型与实体框架认为的当前版本没有同步,因此我清除了所有迁移并按照this post重新开始。

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

  

在程序集“Proj”中找到了多个上下文类型。至   启用Proj.Models.UsersContext的迁移,使用   Enable-Migrations -ContextTypeName Proj.Models.UsersContext。至   启用Proj.Models.InjuriesContext的迁移,使用   Enable-Migrations -ContextTypeName PamperWeb.Models.InjuriesContext。 ......对于我所有的情境

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

  

项目'Proj'中已启用迁移。至   覆盖现有的迁移配置,使用-Force   参数。

显然,我对MVC和实体框架的工作方式有所了解。我在每个模型类中都设置了上下文。我应该在该上下文中只有一个Context和所有数据库集吗?如果是这样,这个上下文所涉及的模型类文件是否重要?我当前的所有上下文都指向同一个数据库。

1 个答案:

答案 0 :(得分:4)

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