当前位置: 首页 > 面试题库 >

每次Entity Framework数据库迁移后如何访问上下文

龙俊英
2023-03-14
问题内容

当我添加迁移时,我可以使用Up /
Down方法获得适当的DbMigration类,在该类中,我可以进行模式更改,并且(可以使用Sql()方法)也可以进行数据/内容更改。

我希望能够使用数据库上下文对每次迁移进行内容更改。我知道我可以在Configuration类中使用Seed方法,但是我的理解是我只能通过初始化程序连接一个Configuration。

我希望有一个UpCompleted()/
DownCompleted()方法,这些方法将在迁移完成后提供对db上下文的访问。这样将能够以比使用Sql()方法更不易出错的方式编写增量数据/上下文更改“脚本”。

我想念什么吗?这可能吗?

谢谢!


问题答案:

这实际上并没有用,因为上下文仅具有您的最新模型-只有运行了最新的迁移(这实际上是Seed实现的)后,才能用于访问数据库。

举一个如何打破这个想法的例子,如果您将一个属性从一个类移到另一个类,则旧版本迁移中的种子逻辑将不再编译。但是您无法将其更改为使用new属性,因为数据库中尚不存在相应的列。

如果要编写这种种子/数据操作逻辑,则需要将其放在Up / Down方法的末尾,并使用Sql方法通过原始SQL来执行它。

〜花wan



 类似资料:
  • 我正在做一个项目,我们使用flyway来升级我们的DB模式。 我正在通过插件使用。 多谢

  • 问题内容: 我正在使用Java开发数据库迁移工具。该工具将数据库表及其数据复制到目标数据库。但是我希望它可以在不同的数据库上工作。从mysql复制并在derby等中创建。使用JDBC,我们可以收集有关表及其列的足够信息。但是我要问的是,是否可以使用sql free在Java上重新创建表。我的意思是不同的数据库具有不同的数据类型,有时它们在sql语法上也有所不同。那么JDBC或任何其他库(可以是开放

  • 在开发和维护一个数据库驱动的应用程序时, 数据库的结构会像代码一样不断演变。 例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。 因为一个数据库结构发生改变的时候源代码也经常会需要做出改变, Yii 提供了一个 数据库迁移 功能,该功能可以记录数据库的变化, 以便使数据库和源代码一起受版本控制。 如下的步骤向我们展示了

  • 简介 迁移就像是数据库的版本控制, 允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和 Laravel 的 数据库结构生成器配合使用,让你轻松地构建数据库结构。如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情。 Laravel 的 Schema 门面 对所有 Laravel 支持的数据库系统提供了创建和操作数据表的相应支持。 生成迁移 使用 Art

  • 数据库迁移可以理解为对数据库结构的版本管理,可以有效的解决团队中跨成员对数据库结构的管理。 生成迁移 通过 gen:migration 生成一个迁移文件,命令后面跟的是一个文件名参数,通常为这个迁移要打算做的事情。 php bin/hyperf.php gen:migration create_users_table 生成的迁移文件位于根目录下的 migrations 文件夹内,每个迁移文件都包

  • 在首次创建数据库,您可以使用版本0指定一个迁移运行时! 注意:任何提供的子类,如,UpdateTableMigration和应该只覆盖onPreMigrate()和调用super.onPreMigrate(),所以它的正确实例化。 基类,是一个非常简单的类来执行迁移: 此处是添加到数据库的列的一个例子: 现在,我们要添加一列到这个表。我们有两种方式: 通过Migration: