EF迁移数据库优先方法?

Sha*_*dix 41 c# entity-framework database-migration

我们正在使用Database First方法和EntityFramework.我们有几个客户,当我们部署新产品版本时,我们现在正在使用类似的工具"手动"应用数据库架构更改SQL Compare.

有没有一种方法可以帮助EF Migrations自动将更改应用于客户数据库?

Pau*_*aul 19

据我所知,EF Migrations是针对CodeFirst的产品,不支持Database First操作.

CodeFirst假定您永远不会手动对数据库进行任何更改.对数据库的所有更改都将通过代码首次迁移完成.

  • 一个很好的选择可能是数据库项目/ SSDT和进行模式比较. (5认同)
  • 谢谢,似乎更新脚本是目前使用EF的唯一途径. (4认同)

Ami*_*aqi 5

我认为有!您需要先继续阅读代码。

为此,假设您有以下 EF Db 首先为您创建的 DbContext:

public class MyDbContext : DbContext
{
    public MyDbContext()
        : base("Name=DefaultConnection")
    {

    }

    // DbSets ...
}
Run Code Online (Sandbox Code Playgroud)

将其更改为以下内容以开始使用代码及其所有魔法工具(迁移等):

public class MyDbContext : DbContext
{
    public MyDbContext()
        : base("YourDbFileName")
    {

    }

    // DbSets ...
}
Run Code Online (Sandbox Code Playgroud)

这会导致 EF 在您的 web.config 文件中使用本地计算机上的 SQL Express 创建一个新的连接字符串,名称为 YourDbFileName,就像最初创建的早期 DefaultConnection Db 一样。

您可能需要继续您的方式,就是根据您的服务器和其他选项编辑 YourDbFileName ConStr。

更多信息在这里这里