Fluent NHibernate 的类映射生成器

Posted

技术标签:

【中文标题】Fluent NHibernate 的类映射生成器【英文标题】:Class Map Generator for Fluent NHibernate 【发布时间】:2011-02-05 22:57:34 【问题描述】:

是否有用于 ?我需要类似 db2hbm 的东西,但我希望它生成 Fluent Class Maps 而不是 xml 映射。

我知道 AutoMapping for Fluent,但这不是我想要的。我希望能够从数据库中的表生成类映射 files 并将它们推送到我的 src 存储库。

【问题讨论】:

恕我直言,如果您在 DB->classes 方向工作,那么使用 hbm 比使用 fluent-nh 更好。 FNH 更倾向于从您的类中推断您的架构 我的观点,但在某些应用程序中,事实证明你需要从 db->class 模型(你无法控制所做的所有决定)但同时你想两全其美。你想从 db 方案生成你的域模型类,并有你的持久层 w/FNH。不过 Tnx 的评论。 【参考方案1】:

您可以使用NHibernate Mapping Generator 来做到这一点。

【讨论】:

我希望我能投票 100 次!!这是来自思想作品的一个很棒的开源工具,非常简单易用!!! 一直在寻找一个简单易用的工具。为 fluentNH 生成完美的 POCO 和映射文件! 这个生成器似乎生成了很多额外的冗余代码,这些代码在 NHibernate 中应该已经是默认值了,比如指定 256 作为字符串的最大长度(不需要,已经默认),使用 Table("Class")当它已经是默认值时进行类,等等。我不是那个的忠实粉丝,Fluent NHibernate 的全部意义在于它应该是简洁易读的,但是生成器创建了很多冗长的、不必要的代码,可读性差. 有一个新的版本 3,它可以创建可读的地图,没有不必要的默认值。 非常错误,问题跟踪器表明缺乏支持。【参考方案2】:

您可以使用Visual NHibernate 执行此操作。选中 Options 屏幕上的 Fluent Nhibernate 选项以创建 FNH 映射代码。

【讨论】:

你知道有什么免费工具可以做同样的工作吗? 到今天为止,Visual NHibernate 在我并不那么复杂的数据库上已经崩溃了。 不支持 VS 2012。不支持 VB.NET。【参考方案3】:

LLBLGen Pro 是一个很棒的工具,可以做到这一点,甚至更多。它不是免费的,但值得每一分钱。

【讨论】:

【参考方案4】:

这是我遇到的最接近的事情(生成 Fluent NH 映射的 T4 模板示例): http://www.pnpguidance.net/Post/SampleFluentNHibernateT4TemplatesCodeGenerationLINQToSQL.aspx

【讨论】:

以上是关于Fluent NHibernate 的类映射生成器的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 Fluent NHibernate 不要映射类属性

Fluent NHibernate:如何将整个类映射为只读?

使用自动映射时如何使用 Fluent NHibernate Validator?

Fluent NHibernate 多对多映射,使用自动生成的 pk 而不是复合键

Fluent Nhibernate 映射多重连接

Fluent NHibernate 自动映射:一对多实体,多对多后端?