首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate代码--像EntityFramework、Django-South这样的第一个迁移管理工具

NHibernate代码--像EntityFramework、Django-South这样的第一个迁移管理工具
EN

Stack Overflow用户
提问于 2013-09-27 08:00:16
回答 2查看 4.3K关注 0票数 5

TL;DR是否有用于管理(自动创建、执行) NHibernate?迁移(使用本机.NET语言)的工具?

我来自Django背景,鼓励开发代码优先。还有一个事实上的移民“行业标准”图书馆,叫做南方。更改模式的典型工作流如下:

  1. 更改模型代码(即添加/删除/修改类和/或属性),当然,模型代码是本机应用程序语言这里: python
  2. 运行模式迁移命令,自动生成迁移代码,迁移代码是python,并将其写入“迁移”子目录。
  3. 如果有必要,调整自动生成的代码.自动生成器非常智能,但不足以处理列重命名。
  4. 运行迁移命令,它查找“迁移”目录并执行所有尚未执行的迁移(使用迁移历史表计算出此迁移)。

这不仅对开发非常方便(即使在SCRUM中,事情变化如此之快),而且对于更新生产也是如此--只需确保在开发机器和生产服务器上的迁移是分开的。对于生产来说,它也是相当安全的,因为您可以在应用迁移之前检查并选择性地修改迁移。

在评估.NET的ORM时,我尝试了EntityFramework5,正如我所发现的,它具有与Django-South非常相似的功能。有一个Package控制台命令,用于创建迁移代码,在执行之前可以修改它,还有一个单独的命令,它执行所有尚未执行的迁移,并在迁移历史记录中将它们标记为已执行。

对于NHibernate,有这样的工具吗?

我知道SchemaUpdate的功能,但是AFAIK只是更新了所有需要一步更新的东西。我不会在生产中使用这种方法,在开发过程中,数据丢失不是灾难,但仍然有些痛苦。我还知道,SchemaUpdate可能用于将SQL语句导出到文件中,而不是执行它们,但这并不方便,因为没有对历史迁移的自动管理。另外,还必须手工编写SQL ;)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-29 14:31:06

不知道这是否真的回答了您的问题,但是要自动化模式更改和更新映射,甚至设计映射,最好使用工具。特别是如果您有一个非常大的数据库/域模型。

我目前正在使用devart的实体开发人员

我们比较了很多类似的工具,但是这个工具真的很棒。它只是有这么多特性,还提供了添加自定义T4模板的特性,以便从模型中生成任何您想要的东西,甚至向模型设计器添加自定义属性,然后可以在代码生成器部件中使用.

您还可以将您的实体/属性重命名为更具可读性的东西,即使在从数据库模式更新之后,该工具也会保留此名称。

当然,它同时支持模型或数据库优先方法.

你可以下载一个试用版来找出这是否符合你的需要.

票数 3
EN

Stack Overflow用户

发布于 2014-07-28 03:40:16

像LLBLGen这样的工具可以在这里有所帮助。LLBLGen Pro是一种数据访问解决方案.您可以使用LLBLGen Pro Designer创建实体/域模型,定义映射并为支持的四种O/R映射框架之一生成源代码:实体框架、LLBLGen Pro运行时框架、NHibernate和Linq。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19045701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档