NHibernate映射属性与流畅的NHibernate

Ber*_*ryl 8 nhibernate nhibernate-mapping fluent-nhibernate

映射属性是否提供与nhib hbm相同的多功能性?你能和FNH一起使用它们来处理FNH还没有像hbm那样做的东西吗?

干杯,
Berryl

通过映射属性,我不是指hbm文件; NHIB(或者现在可能是NHib贡献者)显然存在属性,用于装饰类和类属性.我猜这些早期的FNH,但不确定.

Max*_*ing 5

我个人更喜欢自己创建hbm.xml文件.我曾经使用过Fluent,但我喜欢自己管理这样的事情.但是,我没有碰到任何我无法使用Fluent的映射,尽管......

据我所知,Fluent nHibernate实际上是根据您的设置在后台创建一个hbm.xml文件,而nHibernate依次使用这些文件...因此,如果Fluent本身正在创建映射,我会认为只是创建了hbm.手动xml在技术上会给你更多的灵活性和访问映射文件的细微差别......

我认为两者都有类似的学习曲线,所以如果你打算学习自己创建hbm.xml文件的Fluent,为什么不首先自己学习如何创建该死的hbm.xml文件并跳过中间人!

除非您快速连续执行许多项目,否则实际映射数据库的行为只是您在特定项目中所做的实际工作的一部分.

  • 马克斯席林

  • Max:那么为什么不自己编写原始SQL呢?这就是NHibernate最终生成的全部内容.在NHibernate和FNH的映射中,这是一个让你受益的抽象.当然,所有FNH都会生成hbms,但它也简化了这样做的过程,并使您在更高级别上获得更好的控制.我完全同意映射是应用程序开发过程中的一小部分,但肯定最好使它成为一个更小的数量? (11认同)

Jam*_*ory 5

NHibernate属性在FNH之前进行.除了相对较小的一群顽固坚持者,我真的不认识任何使用它们的人.他们得到了支持,但并不完全友好.如果你喜欢属性,Castle ActiveRecord属性比NHibernate核心属性要好得多.

流畅的NHibernate可以与其他所有东西一起工作.它只是将映射注入到NHibernate Configuration实例中,因此您可以在其中放置其他任何内容.ActiveRecord是一个广泛的解决方案,所以这可能是这个规则的一个例外,自从我使用它已经有一段时间了.