c# – 在部署后处理nHibernate/Fluent nHibernate中的模式更新

在编写一个在Fluent Nhibernate / Nhibernate上运行的应用程序时,我有点担心.我想这对于任何ORM都是如此(甚至没有使用ORM),但是……我猜这个词是’研究领域’,它与部署后更新数据库的最佳实践和方法有关?

在nHibernate中,我建立了一个SessionFactory并进行了初始运行,它根据映射将数据库写出来.这很好,我甚至可以手动编写数据库.但是,当我的客户回来并想要添加新内容时呢?我可以在不丢失数据的情况下附加到数据库吗?我对这一切都是全新的,自从这个项目开始以来一直困扰着我,我真的不知道要去哪个方向以确保我可以在部署之后管理它.

我已经查看了关于这个主题的其他堆栈溢出问题 – 其中一个甚至没有接受的答案(尽管问题本身有点模糊),但我确实从问题中发现了工具http://www.red-gate.com/products/sql-development/sql-compare/
Tool to upgrade SQL Express database after deployment虽然我想知道“战略”有多好.

最佳答案
有几个选项,使用the AutoMapping feature in Fluent NHibernate来最小化您编写的映射代码.如果您的架构更改符合AutoMap约定,那么您只需要处理相应的域对象更改.

另一个不太理想的选择是采用数据库第一种方法,并使用like MyGeneration自动从模式生成域类和NHibernate映射文件.如果您完全控制数据库模式并且可以实现良好的域模型设计(这两种情况很少发生……)

在任一方法中,these tools can help都处理将架构更改“迁移”到新版本所需的数据库脚本

转载注明原文:c# – 在部署后处理nHibernate/Fluent nHibernate中的模式更新 - 代码日志