Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在实体框架中合并迁移条目_C#_.net_Entity Framework_Entity Framework 6_Entity Framework Migrations - Fatal编程技术网

C# 在实体框架中合并迁移条目

C# 在实体框架中合并迁移条目,c#,.net,entity-framework,entity-framework-6,entity-framework-migrations,C#,.net,Entity Framework,Entity Framework 6,Entity Framework Migrations,我有一个EntityFramework6CF项目,它已经完成了一些迁移 该模型现在是稳定的,不需要保留已经存在的迁移历史 是否有方法重置模型并将所有迁移命令合并到初始迁移中 例如,第一次迁移添加一列,而第二次迁移添加一个唯一的非聚集索引。现在,我想直接在OnModelCreating中查看所有这些更改,而不是在单独的迁移中。迁移既有向上又有向下。您始终可以通过拆除迁移,然后添加新迁移来重新构建应用程序。Down过程不会更改您的模型,只会更改数据库。使用更新数据库-Target:migration

我有一个EntityFramework6CF项目,它已经完成了一些迁移

该模型现在是稳定的,不需要保留已经存在的迁移历史

是否有方法重置模型并将所有迁移命令合并到初始迁移中


例如,第一次迁移添加一列,而第二次迁移添加一个唯一的非聚集索引。现在,我想直接在
OnModelCreating
中查看所有这些更改,而不是在单独的迁移中。

迁移既有
向上
又有
向下
。您始终可以通过拆除迁移,然后添加新迁移来重新构建应用程序。
Down
过程不会更改您的模型,只会更改数据库。使用
更新数据库-Target:migrationTargetName
更新数据库-TargetMigration:migrationNumber

如果希望迁移从没有数据库开始,到当前型号结束,可以使用
updatedatabase-TargetMigration:0
删除所有迁移。最好先拆下数据库,然后运行
updatedatabase
,以验证数据库更改是否同步


请记住,如果您将迁移分解为
0
,然后运行
添加迁移
,您将需要非常仔细地查看生成的脚手架,因为它可能与增量更改截然不同。

因为我对术语不熟悉,以下是我到目前为止理解的内容。将数据库降级为迁移
0
,将撤消所有
Up
s,执行所有
Down
s,并将数据库重置为
InitialMigration
。我不知道
updatedatabase
将如何同步到当前数据库模型。它是否会自动生成一个
向上
向下
,这样生成的模型就是我在拆下它们之前开始使用的模型?一旦进行了迁移
0
,您就需要运行
添加迁移
,以创建从当前状态开始的新迁移(
0
)和脚手架到您当前的模型。运行
updatedatabase
会运行所有
Up
语句,这对于在进行多次迁移时进行测试非常有用。很可能我没有明确表达我的意图。我们目前有
x
迁移次数,例如,合并哈希是
abc
。我希望丢失所有的
向下
s,并且只有一个
向上
,或者更新模型本身,使散列变成
abc
。应丢弃初始
0
以上的所有迁移记录,就好像我们刚刚使用hash
xyz
在新模型上首次运行了
InitialMigration
一样。不确定如何清楚地解释这一点,但应该是当前模型应反映所有迁移的效果,但没有迁移:)。只需松散跟踪所有迁移步骤,同时保留所有当前迁移的结果模型。数据丢失当然不是一个考虑因素。单个迁移将类似于前一组迁移,但可能不是100%相同;它应该更高效,无需对表进行分组修改。