NHibernate映射属性与fluent NHibernate

NHibernate映射属性与fluent NHibernate,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,映射属性是否提供与nhib hbm相同的通用性?你能把它们和FNH一起使用来处理FNH还没有hbm做得好的事情吗 干杯, 贝里尔 通过映射属性,我不是指hbm文件;很明显,NHib(或者现在的NHib contrib)附带了一些属性,您可以使用这些属性来装饰您的类和类属性。我猜这些是最早的FNH,但不确定。我从未遇到过Fluent NHibernate无法处理的情况,但可能您使用的是模糊属性。您有什么特别需要知道的吗?我个人更喜欢自己创建hbm.xml文件。我用过Fluent,但我只是喜欢自己处

映射属性是否提供与nhib hbm相同的通用性?你能把它们和FNH一起使用来处理FNH还没有hbm做得好的事情吗

干杯,
贝里尔


通过映射属性,我不是指hbm文件;很明显,NHib(或者现在的NHib contrib)附带了一些属性,您可以使用这些属性来装饰您的类和类属性。我猜这些是最早的FNH,但不确定。

我从未遇到过Fluent NHibernate无法处理的情况,但可能您使用的是模糊属性。您有什么特别需要知道的吗?

我个人更喜欢自己创建hbm.xml文件。我用过Fluent,但我只是喜欢自己处理这些事情。然而,我没有遇到任何映射,我无法得到与流畅的工作,虽然

据我所知,Fluent nHibernate实际上会根据您的设置在后台创建一个hbm.xml文件,然后由nHibernate使用。。。因此,由于Fluent本身就是在创建映射,因此我认为,仅手动创建hbm.xml在技术上会为您提供更大的灵活性和对映射文件细微差别的访问

我认为两者都有相似的学习曲线,所以如果你想费心学习Fluent,它本身就创建了hbm.xml文件,为什么不首先学习如何自己创建该死的hbm.xml文件,跳过中间人

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

  • 马克斯·席林

NHibernate属性的日期早于FNH。除了一小群死硬的抵制者,我真的不知道有谁在使用它们。他们得到了支持,但并不十分友好。如果您喜欢属性,那么属性是比NHibernate核心属性更好的实现


流利的NHibernate可以处理其他任何事情。它所做的只是将映射注入到NHibernate配置实例中,这样您就可以在其中放入任何您喜欢的东西。ActiveRecord是一个更广泛的解决方案,所以这可能是这个规则的一个例外,我已经有一段时间没有使用它了。

我们在我的业务中使用它们,我有点喜欢它们


我认为直接在类定义中编写映射(我知道-每个人都有自己的映射)非常好。

我同意这里的大多数评论,Hibernate让您可以自由选择如何实现对象的映射

我不喜欢在我的类上为NHibernate使用属性,因为现在我的类有另一个他们不应该知道的依赖性

如果要将datasouce更改为OODB或只是一个文件,会发生什么。这些类将具有冗余的映射代码(属性)。在这种情况下,可以说,将映射与存储库实现一起存储在数据/基础结构层(假定使用存储库模式)更为简洁


我也同意,每个人都有:)

我试图理解NHibernate 3与Hibernate 3在属性与注释方面的区别。我参加过几个Java项目,其中我们使用Hibernate3注释进行映射。这是相当优雅的

  • 代码所在的位置清楚地记录了实体
  • 单步执行调试器时更易于调试
  • 您不必在上下文之外打开单独的文件
  • 要管理的工件更少
  • 编译时检查
  • 智能感知=更少的打字错误
  • 无需安装/学习单独的第三方组件(如FNH)
  • Hibernate团队致力于使注释易于使用和集成
  • 我不确定我是否接受“如果必须更改数据源怎么办”或“关注点分离”的论点。在实践中,这些论点着眼于“20%”(或更少),要么不会发生,要么影响很小——好处远远大于IMHO


    话虽如此,我还不清楚的是,NHibernate团队是否投入了足够的资金,使这些属性足够健壮,足以保证使用,还是我最好转向EF4.x以获得同样的好处。。。这些就是我希望从这篇文章中得到的答案。

    我目前也只使用FNH,在阅读曼宁的《国家健康保险条例》之前,我甚至不知道映射属性,所以这个问题更多的是关于它们而不是FNH。但FNH的一个问题是它不允许我设置鉴别器列名和值(它使用默认值,但不是我想要的)。Cheers Berryl,我认为你需要就你的鉴别器问题提出一个支持问题,因为FNH绝对允许你同时指定鉴别器列名和值。@James-我确实提出了一个支持问题,但没有得到任何回应,而且从那以后,我还看到其他用户就同一问题发表了其他帖子。请参阅2010年3月26日上午11:07时提出的支持问题“将每个子类的表转换为每个类的表继承”(第二篇文章),此线程从3月9日开始。干杯。我的xml恐惧症患者拒绝学习hbm,但在学习之前你真的不会流利。我所说的属性是FNH和hbm文件的可选属性,或者曾经是。那么为什么不自己编写原始SQL呢?这就是NHibernate最终生成的所有内容。在NHibernate和FNH的映射中,抽象对您都有好处。当然,FNH所做的只是生成hbms,但它也简化了生成hbms的过程,并在更高级别上为您提供了更好的控制。我完全同意映射是应用程序开发过程中的一小部分,但将其减少一点肯定更好?我认为这归结为选择抽象。SQL部分是一个主要部分,nHibernate节省了大量时间