gpt4 book ai didi

database - 架构更新后删除了 Fluent NHibernate 数据

转载 作者:太空狗 更新时间:2023-10-30 01:58:43 25 4
gpt4 key购买 nike

我正在使用 Fluent NHibernate 来处理我的数据库。

当运行下面的代码时,有些事情会起作用。一个函数更新表结构,这也有效,但我的数据不见了。

ISessionFactory result = Fluently.Configure()
.Database(MySQLConfiguration.Standard.ConnectionString(connectionString))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Page>())
.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
.BuildSessionFactory();

有没有人知道如何解决这个问题?必须更新表格,但不得删除数据。

在 fluent NH 的 wiki 上,我找不到关于 ExposeConfiguration 的更多信息。

最佳答案

SchemaExport(cfg).Create(true, true)) 就是这样做的。我没有使用 Fluent,但根据我刚刚查看的一个项目,我认为它应该类似于 SchemaUpdate(cfg).Execute(true,true)

编辑:由于这个答案似乎仍在帮助人们,这里有一个更长的解释。

这里的主要区别在于我们正在创建的对象。 SchemaExport 实例生成 DDL 来创建数据库。 Create 方法生成脚本,第二个参数告诉它是否对数据库运行该脚本。 Create 调用 Execute,传递额外的参数,包括“不要只是删除表,删除它并重新创建它”的参数。此类中没有不先删除表的选项。

SchemaUpdate 实例(内部)要复杂得多,因为它查看现有表并在当前表和配置中指定的表之间生成增量(我找不到这是一个引用,我没有看代码,我只知道它有效)。不过在这两种情况下,参数基本相同。第一个是“将 ddl 输出到控制台”,第二个是“针对数据库实际运行”。

关于database - 架构更新后删除了 Fluent NHibernate 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235519/

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