gpt4 book ai didi

sql - 流畅的 NHibernate : SchemaExport and SchemaUpdate

转载 作者:行者123 更新时间:2023-12-01 01:11:19 33 4
gpt4 key购买 nike

我需要帮助解决我的应用程序中的问题。

我已经在 Visual Studio 中创建了一个项目,并且我已经安装并配置了 Fluent NHibernate。我能够正确配置所有内容,并且能够连接到我的数据库。

我尝试在我的表中插入几行,一切正常,但是每当我重新启动我的应用程序时,我注意到表被删除并重新创建,所有数据都消失了。

我通过使用解决了这个问题:

.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(true, true))

代替:
.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))

到目前为止一切正常,但现在问题来了。假设我有一个 Person.cs 类,它有两个字段: 身份证,姓名。 假设我想添加一个名为 的新属性。地址 .我将该属性添加到我的类(class)并运行我的应用程序。我尝试添加几行并检查数据库以查看确实创建了一个名为 Address 的新列,并为旧条目插入了空值。

现在假设我改变了主意并决定删除新的属性地址。我从我的 Person.cs 类中删除该属性并运行该应用程序。我插入了一些条目并检查数据库以查看列 Address 未被删除并且仍然存在于表中。

为什么会发生这种情况?映射配置不应该为我做所有事情吗?我希望将不再需要的列删除到数据库中,就像我向类添加新属性时创建它们的方式一样,并且不会丢失我的数据。我该怎么办?

最佳答案

SchemaExport/SchemaUpdate 不是迁移框架。

它们只确保您的域可以与数据库一起使用,并且在开发期间有用(不在生产​​中)

关于sql - 流畅的 NHibernate : SchemaExport and SchemaUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15328216/

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