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?