同一数据库中的多个数据库上下文和EF 6中的应用程序以及代码优先迁移

我是实体框架的新手。我正在尝试设置使用EF 6的MVC应用程序。我正在使用代码优先迁移。我在应用程序中使用Areas,并且希望在每个区域中使用不同的DbContext来分解它。我知道EF 6具有ContextKey,但是我找不到有关如何使用它的完整信息。目前,我一次只能使用一个上下文的迁移。

有人可以提供一个足够详细的示例,让像我这样的EF新手理解和使用。


繁星点点滴滴
浏览 600回答 3
3回答

炎炎设计

如果它们确实映射到同一个表,则仍然可以定义哪个迁移将首先运行,并让其迁移文件创建该表,然后哪个迁移文件将运行并进行修改,以使其不创建已经存在的表。然后,您可以使用每个上下文的MigrateDatabaseToLatestVersionforze强制ctx.Database.initialize()以正确的顺序运行,或Update-Database以正确的顺序手动运行命令。(相反,如果您将数据库迁移到以前的版本,则相反)。这是“危险的”,但是可以做到的。

RISEBY

因此,我向项目添加了迁移,并创建了与ApplicationDbContext不同的上下文。我继续使用了大约6个月的与网站相关的数据作为上下文,然后是时候开始搞乱我的ApplicationUser了。我的基本登录和注册正在运行,但是我想扩展用户类以添加一些其他字段。这个答案对于为该上下文设置新的迁移配置非常有帮助。谢谢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

CSS3