Entity framework 为什么使用实体框架迁移

Entity framework 为什么使用实体框架迁移,entity-framework,migration,Entity Framework,Migration,我已经开始研究4.3.1上的实体框架迁移。我有几个问题: 在开发过程中首选什么?我为什么不干脆放弃,重新开始我的生活呢 数据库总是,然后重新设定种子。如果我使用代码优先迁移,可以 我选择最初为我的数据库设置种子,然后为每个数据库添加种子方法 迁移到仅添加新数据?如果我使用自动迁移,是吗 有可能做类似的事情吗?i、 e.先播种,然后播种 按要求播种 在开发过程中使用迁移的好处是什么?我只是 实际上,在迁移到生产环境时需要迁移。所以,我需要 创建我的初始脚本,然后为每次迁移创建脚本,以便 如果我想迁

我已经开始研究4.3.1上的实体框架迁移。我有几个问题:

  • 在开发过程中首选什么?我为什么不干脆放弃,重新开始我的生活呢 数据库总是,然后重新设定种子。如果我使用代码优先迁移,可以 我选择最初为我的数据库设置种子,然后为每个数据库添加种子方法 迁移到仅添加新数据?如果我使用自动迁移,是吗 有可能做类似的事情吗?i、 e.先播种,然后播种 按要求播种

  • 在开发过程中使用迁移的好处是什么?我只是 实际上,在迁移到生产环境时需要迁移。所以,我需要 创建我的初始脚本,然后为每次迁移创建脚本,以便 如果我想迁移到,是否可以只使用迁移 然后创建一个初始脚本并维护 从那以后的迁移历史


  • 在我们的案例中,我们开始使用迁移,因为在我们公司,开发人员没有创建数据库的必要权限,这导致了一个有趣的场景,我多次删除数据库,每次都不得不要求数据库管理员重新创建它…
    在我看来,以增量方式增加数据库似乎比每次都要重新创建数据库更容易。如果每次添加、删除或更改属性时我都必须删除并重新创建数据库,那么我永远也看不到它的结束

    我还没有看到增量种子的可能性,除非您创建手动迁移文件。
    迁移可以转到特定版本(向前或向后),也可以从迁移生成SQL脚本。

    因此,基本上,您不必再手动创建迁移SQL脚本,您可以让迁移来为您创建它。

    在我们的案例中,我们开始使用迁移,因为在我们公司,开发人员没有必要的权限创建数据库,这导致了一个有趣的场景,在这个场景中,我几次删除了数据库,每次都要让数据库管理员重新创建它…
    在我看来,以增量方式增加数据库似乎比每次都要重新创建数据库更容易。如果每次添加、删除或更改属性时我都必须删除并重新创建数据库,那么我永远也看不到它的结束

    我还没有看到增量种子的可能性,除非您创建手动迁移文件。
    迁移可以转到特定版本(向前或向后),也可以从迁移生成SQL脚本。

    因此,基本上,您不必再手动创建迁移SQL脚本,您可以让迁移来为您完成它。

    谢谢!这似乎是一个很酷的特性,我只是不愿意在我的开发环境中使用迁移,因为它在每次更新时都运行seed方法,所以我的数据是重复的。我可以使用AddorUpdate,但从我所读到的内容来看,它似乎有自己的问题,这就是为什么它看起来是最容易和最安全的删除和重新创建。如果我们可以关闭seed方法,或者在每次迁移时运行多个seed方法,那就太好了。我假设解决这个问题的一种方法是将Sql(insert)添加到我的迁移文件中……但是我的种子数据不在一个位置,有点乱,这确实很烦人。我们首先检查数据库中是否已经存在某个记录(通常是种子记录),如果已经存在,则中止种子记录,从而快速解决了这个问题。从我在其他SO帖子中读到的内容来看,如果您使用手动迁移,则完全有可能以增量方式进行种子植入。可以改变种子设定:只是不要在种子设定方法中放入任何代码:-)您可以使用AddOrUpdate()方法,该方法提供了一种简单的方法:)谢谢!这似乎是一个很酷的特性,我只是不愿意在我的开发环境中使用迁移,因为它在每次更新时都运行seed方法,所以我的数据是重复的。我可以使用AddorUpdate,但从我所读到的内容来看,它似乎有自己的问题,这就是为什么它看起来是最容易和最安全的删除和重新创建。如果我们可以关闭seed方法,或者在每次迁移时运行多个seed方法,那就太好了。我假设解决这个问题的一种方法是将Sql(insert)添加到我的迁移文件中……但是我的种子数据不在一个位置,有点乱,这确实很烦人。我们首先检查数据库中是否已经存在某个记录(通常是种子记录),如果已经存在,则中止种子记录,从而快速解决了这个问题。从我在其他SO帖子中读到的内容来看,如果您使用手动迁移,则完全有可能以增量方式进行种子植入。可以改变种子设定:只需不要在种子设定方法中放入任何代码:-)您可以使用AddOrUpdate()方法,该方法提供了一种简单的方法:)