25

很长一段时间以来,我一直在寻找有关如何使用 Fluent NHibernate正确实现一对一映射的示例。

我发现的大多数资源都说:

我想你的意思是多对一

但是,实际上没有人给出如何正确实现一对一关系的示例。

那么,您能否给出一个使用 Fluent NHibernate 的一对一映射示例

注意:我对人们说“你的模型是什么,你实际上可能需要HasMany ”不感兴趣。不,谢谢,我只需要一个一对一的例子。

更准确地说,我知道语法。这是我唯一能通过自己搜索找到的东西。我正在寻找的是一个更完整的例子,包括一个((非常)简单的)数据库设置,以及参与关系的所有实体的整个映射,我认为对于 Stack Overflow 来说,它的大小是合理的。

4

4 回答 4

19

我已经解决了我的问题。

我还写了一篇关于这个问题的详细文章,您可以在以下位置找到:http ://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/index.html

您会发现我们想要一对一关系的场景,我们想要的数据库模式,满足 NHibernate 要求的模型代码,以及与这种情况对应的Fluent映射.

于 2010-01-20T20:53:21.890 回答
3
these are the two classes.

public class A
{
  public virtual int Id {get;set;}
  public virtual string P1 {get;set;}
  public virtual string P2 {get;set;}
  public virtual string P3 {get;set;}
  public virtual B child { get; set; }
}

public class B
{
  public virtual int Id {get;set;}
  public virtual string P4 {get;set;}
  public virtual string P5 {get;set;}
  public virtual string P6 {get;set;}
  public virtual A parent;
}     

这应该添加到流利的配置中。

public AMap()
    {
      /* mapping for id and properties here */
      HasOne(x => x.child)
          .Cascade.All();
    }

    public BMap()
    {
      /* mapping for id and properties here */
      References(x => x.parent)
          .Unique();
    }
于 2014-11-25T06:57:58.113 回答
2

这是我见过的最好的例子。希望它能满足您的需求。

于 2010-01-18T14:59:51.697 回答
-2

HasOne(x => x.Prop)

于 2010-01-18T09:47:24.483 回答