Fluent NHibernate:一对一映射

Fluent NHibernate:一对一映射,nhibernate,orm,fluent-nhibernate,mapping,Nhibernate,Orm,Fluent Nhibernate,Mapping,NHibernate似乎支持一对一映射的特殊情况(不需要在关系的每一侧都进行1-m映射) 见Ayende的这篇文章: 我不知道如何在Fluent NHibernate中指定这一点-这可能吗?一种情况是使用子类。您可以为每个层次结构或每个类指定一个表 您需要覆盖每个层次结构,如下所示: public class UserMap : IAutoMappingOverride<User> { public void Override(AutoMapping<

NHibernate似乎支持一对一映射的特殊情况(不需要在关系的每一侧都进行1-m映射)

见Ayende的这篇文章:


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

一种情况是使用子类。您可以为每个层次结构或每个类指定一个表

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

 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);

        }
public类UserMap:IAutoMappingOverride
{
公共无效替代(自动映射)
{
DiscriminateSubClassesOnColumn(“用户类型”);
}
}
公共无效替代(自动映射)
{
映射表(“人员”);
鉴别器值((int)UserTypes.Person);
}

啊,刚从流利小组中的一位乐于助人的人那里找到,我可以使用

HasOne(x => x.Cover);

之前不知怎么错过了://

谢谢。我希望有一种不那么复杂的方法:)我想这意味着两个对象之间必须存在继承关系?我真的不想那样做。