TL;DR是否有用于管理(自动创建、执行) NHibernate?迁移(使用本机.NET语言)的工具?
我来自Django背景,鼓励开发代码优先。还有一个事实上的移民“行业标准”图书馆,叫做南方。更改模式的典型工作流如下:
这不仅对开发非常方便(即使在SCRUM中,事情变化如此之快),而且对于更新生产也是如此--只需确保在开发机器和生产服务器上的迁移是分开的。对于生产来说,它也是相当安全的,因为您可以在应用迁移之前检查并选择性地修改迁移。
在评估.NET的ORM时,我尝试了EntityFramework5,正如我所发现的,它具有与Django-South非常相似的功能。有一个Package控制台命令,用于创建迁移代码,在执行之前可以修改它,还有一个单独的命令,它执行所有尚未执行的迁移,并在迁移历史记录中将它们标记为已执行。
对于NHibernate,有这样的工具吗?
我知道SchemaUpdate的功能,但是AFAIK只是更新了所有需要一步更新的东西。我不会在生产中使用这种方法,在开发过程中,数据丢失不是灾难,但仍然有些痛苦。我还知道,SchemaUpdate可能用于将SQL语句导出到文件中,而不是执行它们,但这并不方便,因为没有对历史迁移的自动管理。另外,还必须手工编写SQL ;)
发布于 2013-09-29 14:31:06
不知道这是否真的回答了您的问题,但是要自动化模式更改和更新映射,甚至设计映射,最好使用工具。特别是如果您有一个非常大的数据库/域模型。
我目前正在使用devart的实体开发人员。
我们比较了很多类似的工具,但是这个工具真的很棒。它只是有这么多特性,还提供了添加自定义T4模板的特性,以便从模型中生成任何您想要的东西,甚至向模型设计器添加自定义属性,然后可以在代码生成器部件中使用.
您还可以将您的实体/属性重命名为更具可读性的东西,即使在从数据库模式更新之后,该工具也会保留此名称。
当然,它同时支持模型或数据库优先方法.
你可以下载一个试用版来找出这是否符合你的需要.
发布于 2014-07-28 03:40:16
像LLBLGen这样的工具可以在这里有所帮助。LLBLGen Pro是一种数据访问解决方案.您可以使用LLBLGen Pro Designer创建实体/域模型,定义映射并为支持的四种O/R映射框架之一生成源代码:实体框架、LLBLGen Pro运行时框架、NHibernate和Linq。
https://stackoverflow.com/questions/19045701
复制相似问题