【问题标题】:Fluent nHibernate with Automapping: How to set Inverse on "Child" side of relationFluent nHibernate with Automapping:如何在关系的“子”端设置 Inverse
【发布时间】:2015-09-18 14:31:26
【问题描述】:

据此话题Fluent nHibernate with Automapping: How to get a parent or "containg" object from a child

我已经使用“父”属性创建了类:

class Box
{
    public virtual int Id { get; protected set;}
    public virtual IList<Item> Items {get; protected set;}
}

class Item
{
    public virtual int Id { get; protected set;}
    public virtual Box Parent {get; set;}
}

正如上述主题中所建议的,我编写了将Parent 属性的键列设置为与BoxItems 的键列相同的约定。 不同之处在于我想在Parent 属性上设置Inverse,而不是在收集端。有没有可能做到这一点?
我尝试编写IReferenceConvention 的正确实现,但我看不到这种可能性。

【问题讨论】:

    标签: c# nhibernate fluent-nhibernate automapping


    【解决方案1】:

    没有直接的语法可以使多对一关系成为逆关系。

    这有一些原因:

    • 更自然
    • 并且性能更好,因为类(Parent)中的引用直接映射到数据库中的外键
    • 因为无论如何它需要在内存中保持一致(这是你必须关心自己的部分),所以没关系。

    您可以通过不进行逆操作来欺骗它并禁止更新 Parent 属性。我不知道Fluent是否可以。反正我是不会做的。就是自找麻烦。

    使用 XML 映射,它看起来像这样:

    <many-to-one name ="Parent"  ... insert="false" update="false">
    

    此处示例:http://www.codeproject.com/Articles/472019/Object-Relational-Mapping-ORM-u

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多