Cie*_*iel 7 c# sql nhibernate fluent-nhibernate
在编写一个在Fluent Nhibernate/Nhibernate上运行的应用程序时,我有点担心.我想这对于任何ORM都是如此(甚至没有使用ORM),但是......我猜这个词是'研究领域',它与部署后更新数据库的最佳实践和方法有关?
在nHibernate中,我建立一个SessionFactory并进行初始运行,根据映射将数据库写出来.这很好,我甚至可以手动编写数据库.但是当我的客户回来并想要添加新内容时呢?我可以在不丢失数据的情况下附加到数据库吗?我对这一切都是全新的,自从这个项目开始以来一直困扰着我,我真的不知道要采取什么方向来确保我可以在部署之后管理该程序.
我已经查看了关于这个主题的其他堆栈溢出问题 - 其中一个甚至没有接受的答案(虽然问题本身有点模糊),但我确实发现了这个工具http://www.red -gate.com/products/sql-development/sql-compare/来自问题 工具部署后升级SQL Express数据库虽然我想知道"策略"有多好.
有几个选项,使用Fluent NHibernate 中的 AutoMapping 功能来最大限度地减少您编写的映射代码。如果您的架构更改符合 AutoMap 约定,那么您只需处理相应的域对象更改。
另一个不太理想的选择是采用数据库优先的方法,并让MyGeneration 之类的东西自动从模式生成域类和 NHibernate 映射文件。如果您完全控制数据库模式并且可以实现良好的领域模型设计(这两种情况很少发生......),那么这是有效的
无论采用哪种方法,这些工具都可以帮助处理将架构更改“迁移”到新版本所需的数据库脚本