2017-04-08 172 views
0

我正在使用支持安装,删除插件的asp.net mvc应用程序。实体框架代码优先和现有数据库

当我想安装一个新的插件我有一个安装方法注册新的路线和...

对于数据库,我使用代码第一种方法用于创建数据库,每个插件有它自己的上下文类。

我的问题是:当我想要安装一个新插件时,我需要在现有数据库中创建额外的表,或者在数据库尚不存在的情况下创建一个新的数据库。如果这些表已经存在,则不应该创建任何表。

我该如何做到这一点?

在此先感谢

+0

您可以在不丢失数据的情况下迁移您的数据库。检查此链接http://www.entityframeworktutorial.net/code-first/migration-in-code-first.aspx –

回答

1

的Code First迁移有你要熟悉

  • 添加迁移将脚手架基础上改变下一个迁移你 对您的模型所做的两个主要命令自上次迁移创建
  • 更新,数据库将适用于任何未决迁移到数据库

开发新应用程序时,数据模型会频繁更改,并且每次模型更改时都会与数据库不同步。您已将实体框架配置为每次更改数据模型时自动删除并重新创建数据库。当您添加,删除或更改实体类或更改DbContext类时,下次运行应用程序时,它会自动删除现有数据库,创建一个与模型匹配的新数据库,并将其与测试数据一起进行种子处理。 在将应用程序部署到生产之前,使数据库与数据模型保持同步的这种方法运行良好。当应用程序在生产环境中运行时,它通常会存储要保留的数据,并且每次进行更改时都不想丢失所有内容,例如添加新列。 Code First Migrations功能通过启用Code First来更新数据库模式而不是删除和重新创建数据库来解决此问题。

我建议看看下面的链接,让你更清楚你的问题。

https://msdn.microsoft.com/en-us/data/jj591621

相关问题