我正在开发一个带有 asp.net mvc 的应用程序,它支持安装、删除插件。
当我想安装一个新插件时,我有一个安装方法,可以注册新路由和...
对于数据库,我使用代码优先方法来创建数据库,每个插件都有自己的上下文类。
我的问题是:当我想安装一个新插件时,我需要在现有数据库中创建其他表,或者如果数据库尚不存在,则需要创建一个新数据库。如果这些表已经存在,则不应创建任何内容。
我如何实现这一点?
提前致谢
Code First Migrations 有两个您将熟悉的主要命令
- 添加迁移将根据您的更改搭建下一个迁移的基架 自上次创建迁移以来已对模型进行
- 更新数据库会将任何挂起的迁移应用于数据库
开发新应用程序时,数据模型会频繁更改,并且每次模型更改时,它都会与数据库不同步。您已将实体框架配置为在每次更改数据模型时自动删除并重新创建数据库。添加、删除或更改实体类或更改 DbContext 类时,下次运行应用程序时,它会自动删除现有数据库,创建一个与模型匹配的新数据库,并使用测试数据为其设定种子。 在将应用程序部署到生产环境之前,这种使数据库与数据模型保持同步的方法非常有效。当应用程序在生产环境中运行时,它通常会存储要保留的数据,并且您不希望每次进行更改(如添加新列)时都丢失所有内容。代码优先迁移功能通过启用代码优先来更新数据库架构,而不是删除并重新创建数据库,从而解决此问题。
我建议查看以下链接,让您更清楚地了解您的问题。
https://msdn.microsoft.com/en-us/data/jj591621