相当于NHibernate中Hibernate的@embeddable/EF的ComplexTypeConfiguration?

Posted

技术标签:

【中文标题】相当于NHibernate中Hibernate的@embeddable/EF的ComplexTypeConfiguration?【英文标题】:Equivalent to Hibernate's @embeddable / EF's ComplexTypeConfiguration in NHibernate? 【发布时间】:2010-11-24 21:48:48 【问题描述】:

NHibernate 中是否有与 Hibernate 的 @embeddable 注解/Entity Framework 的 ComplexTypeConfiguration 基类等价的东西?

我知道 1:1 映射的可能性,但我正在寻找一种将值嵌入到父实体表中的解决方案。

【问题讨论】:

【参考方案1】:

基于对 Hibernate @embeddable 属性的快速浏览,它基本上是一个可以在多个地方重复使用的组件。 NHibernate 不支持这种开箱即用的功能,但您可以使用 Fluent NHibernate's ComponentMap 完成此操作:

Component(x => x.Address, m =>

  m.Map(x => x.Number);
  m.Map(x => x.Street);
  m.Map(x => x.PostCode);
);

看起来 ComponentMap 在覆盖列定义方面没有那么大的灵活性,尽管您可以为列添加前缀以允许同一实体中的重复组件。 (例如,在一个人上带有 HomeAddress 和 WorkAddress 的 ComponentMap。)

【讨论】:

谢谢。这正是我正在寻找的。我也应该检查 Fluent NHibernate 文档...

以上是关于相当于NHibernate中Hibernate的@embeddable/EF的ComplexTypeConfiguration?的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate 和 Oracle Lite

Nhibernate/Hibernate、查找表和对象设计

Nhibernate/Hibernate、查找表和对象设计

使用 NHibernate/Hibernate 将实体类型转换为子类型

共享 nHibernate 和 hibernate 二级缓存

配置NHibernate hibernate.cfg.xml文件以获得更多连接字符串