gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:17:30 24 4
gpt4 key购买 nike

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

我希望能够使用数据库上下文在每次迁移时进行内容更改。我知道我可以在 Configuration 类中使用 Seed 方法,但我的理解是我只能将一个 Configuration 与我的初始值设定项连接起来。

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

我错过了什么吗?这可能吗?

谢谢!

最佳答案

这实际上不起作用,因为上下文只有您最新的模型 - 只有在最近的迁移运行后才能用于访问数据库(这实际上是 Seed 实现的)。

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

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

~罗文

关于sql - 如何在每次 Entity Framework 数据库迁移后访问上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com