【问题标题】:Fluent NHibernate: mapping one-to-oneFluent NHibernate:一对一映射
【发布时间】:2010-12-07 07:26:27
【问题描述】:

NHibernate 似乎支持一对一映射的特殊情况(这不需要在关系的每一侧都有 1 米的映射)。

请参阅 Ayende 的这篇文章:

http://nhibernate.info/blog/2009/04/18/nhibernate-mapping-lt-one-to-one-gt.html

我不知道如何在 Fluent NHibernate 中指定这个 - 这可能吗?

【问题讨论】:

    标签: nhibernate orm fluent-nhibernate mapping


    【解决方案1】:

    啊,刚从 Fluent 组的一个乐于助人的人那里找到我可以使用的

    HasOne(x => x.Cover);
    

    之前不知何故错过了:/

    【讨论】:

      【解决方案2】:

      一个场景是子类。您可以为每个层次结构或每个类指定一个表。

      您需要覆盖每个层次结构,如下所示:

       public class UserMap : IAutoMappingOverride<User>
          {
              public void Override(AutoMapping<User> mapping)
              {
                  mapping.DiscriminateSubClassesOnColumn<int>("UserType");
      
              }
          }
      
              public void Override(AutoMapping<Person> mapping)
              {
                  mapping.Table("Persons");
      
                  DiscriminatorValue((int)UserTypes.Person);
      
              }
      

      【讨论】:

      • 谢谢。我希望有一种不那么复杂的方法:) 我想这意味着这两个对象之间必须存在继承关系?我真的不想那样做。
      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 2012-06-04
      相关资源
      最近更新 更多