【问题标题】:Update a SQL Server database from an Entity Framework Model从实体框架模型更新 SQL Server 数据库
【发布时间】:2015-01-31 03:58:12
【问题描述】:

我正在使用带有 SQL Server 2008R2 数据库的 VB.net、EF6。

情况是这样的:我已经创建了应用程序。使用向导,我从现有数据库创建了实体模型。

一位客户开始使用他计算机上的这个数据库来使用这个应用程序。

几个月后,我对数据库进行了一些修改,并在我的应用程序上更新了模型。

现在我有一个新的 .exe 文件,其中包含来自新数据库的新模型。

我将新的 .exe 文件放在客户端计算机上。

现在在他的计算机上,.exe 文件具有新的数据库模型,但 SQL Server 数据库具有旧结构。

我想知道:是否可以从应用程序上的实体模型更新数据库结构?

我想在应用程序上添加一个可以进行(如果可能的话)更新的命令,以便数据库根据实体模型保持最新?

谢谢!

【问题讨论】:

    标签: sql-server vb.net entity-framework-6


    【解决方案1】:

    如果您应用了代码优先的方法,那么您应该选择MSDN 上给出的以下解决方案,因此您生成的脚本将是“幂等的”。

    Run the Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: AddPostAbstract command in Package Manager Console
    

    在完成之后仍然遇到问题,然后尝试下面的命令

    Update-Database -Script -SourceMigration:0
    

    【讨论】:

    • 我首先在 sql server management studio 上创建了数据库,然后通过向导从现有数据库中创建了我的应用程序中的实体。看来我是先使用数据库而不是先使用代码,还是我错了?所以如果我先使用数据库,我该如何使用解决方案?
    • 好的,是的,您是对的,看来您使用的是数据库优先方法。不幸的是,对于数据库优先方法的迁移没有有效的解决方案,尝试生成一个数据库脚本并让客户端在他的数据库中运行,它将适用于客户端,也适用于您。
    【解决方案2】:

    如果可能,请尝试将数据库部署为数据层应用程序。这将使管理迁移和升级变得更加容易。更多信息在这里,https://msdn.microsoft.com/en-us/library/ee210546.aspx

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 2011-04-26
      • 1970-01-01
      • 2019-12-17
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      相关资源
      最近更新 更多