【问题标题】:Fluent NHibernate & one-to-one流畅的 NHibernate 和一对一
【发布时间】:2011-01-05 11:45:05
【问题描述】:

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

我找到的大多数资源说:

我认为你的意思是多对一

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

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

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

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

【问题讨论】:

    标签: fluent-nhibernate one-to-one


    【解决方案1】:

    HasOne(x => x.Prop)

    【讨论】:

    • 这不是示例,这只是语法。我正在寻找更多上下文示例,同时解释数据库设置。
    • 您说您不想要 HasMany,这暗示我您实际上知道一对一是什么意思,可以选择它而不是其他东西。
    • 是的,我知道什么是一对一,但我总是遇到 ID 映射、自动生成 ID 的问题。
    • 创建您的映射,生成架构,将结果与您通常的做法进行比较。
    【解决方案2】:

    This is the best example我见过。希望它能满足您的需求。

    【讨论】:

    • 请把最重要的信息放在帖子里。不鼓励仅提供链接的答案。
    【解决方案3】:

    我的问题已经解决了。

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

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

    【讨论】:

    • 已修复。两天前我更改了一些设置时不小心断开了链接。感谢您的报告!
    • 请在回答中贴出相关内容。不鼓励仅提供链接的答案。
    • @BrunoReis 谢谢,但您的文章已损坏图片链接 :(
    【解决方案4】:
    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();
        }
    

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 2011-05-14
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多