Database 将数据库更改复制并同步到实体框架模型
我们首先使用的是实体框架代码,我们的模型是C#。 我们的一位DBA增加了一个专栏,我们如何将他的更改迁移到我们的NetCore项目中?是否有命令行自动同步此操作 我们知道下面的命令行将占用整个数据库并放入C#。我们只对微小的修改感兴趣Database 将数据库更改复制并同步到实体框架模型,database,entity-framework,model-view-controller,asp.net-core-2.0,sql-server-2016,Database,Entity Framework,Model View Controller,Asp.net Core 2.0,Sql Server 2016,我们首先使用的是实体框架代码,我们的模型是C#。 我们的一位DBA增加了一个专栏,我们如何将他的更改迁移到我们的NetCore项目中?是否有命令行自动同步此操作 我们知道下面的命令行将占用整个数据库并放入C#。我们只对微小的修改感兴趣 Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServe
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
你就这些了。使用现有数据库是一件要么全有要么全无的事情。要么通过代码管理实体并将其中的更改迁移回数据库,要么从数据库中构建实体。换句话说,数据库更改意味着您需要重新构建所有内容。没有所谓的“代码迁移” 或者,我想您可以手动修改entity类。对于添加新列之类的简单更改,这可能是最好的方法,只要您注意复制属性,使其与数据库中的列完全匹配 编辑(基于对问题的评论) 好吧,如果你先编写代码,那么就不应该有人手动触摸数据库。时期你必须把它作为一条规则。如果DBA想要进行更改,他可以与您的团队进行沟通,您可以在团队中进行适当的代码更改,并返回SQL脚本以执行迁移。这就是DevOps发挥作用的地方。你的DBA应该是你团队的一部分,你们应该一起做决定。如果你做不到,这是行不通的
将生成迁移文件
20180906120000\u add\u dba\u column.cs
\u EFMigrationHistory
记录:
MigrationId:20180906120000\u add\u dba\u列,产品版本:
如果您希望坚持代码优先的方法,这意味着您应该培训DBA编写EF迁移。我们首先使用实体框架代码-DBA不应该首先在数据库中创建列。正确,请不要理解,我们正在尝试适应不同的团队成员。您尝试将列名添加到模型并生成迁移。然后通过删除迁移的
public override void Up()
方法中的AddColumn()
来更改迁移?我们可能会使用下面这样的技术来同步我们的项目,dba和sql reporting团队还需要从数据库项目创建报告,如果您知道的话,我在这里还问了一个问题,@MarkThomas-“代码优先”意味着你有一个真理的来源——“你的代码”。训练DBA写EF迁移