Fluent nHibernate with Automapping:如何从子对象获取父对象或 "containg" 对象

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

我有一个与此类似的对象模型:

    public class Item
    {
        public virtual Guid Id { get; set; }
    }

    public class Box
    {
        public virtual Guid Id { get; set; }
        public virtual IList<Item> Contents { get; protected set; }

        public Box()
        {
            Contents = new List<Item>();
        }
    }

我想要做的是能够获得项目的父项(即它所在的框)。通常我会在名为 Parent 的 Item 上创建一个字段,并在手动映射中处理一对多关系,但我们正在尝试在此项目上使用自动映射。有什么办法可以在项目上创建一个 Box 或 BoxId 字段 ID,并在保存对象(在本例中为 Box)时让 FNH 自动为我填充?

谢谢!

在对象模型der中手动映射和自动映射没有区别

public class Box
{
    public virtual Guid Id { get; set; }
    public virtual IList<Item> Contents { get; protected set; }

    public Box()
    {
        Contents = new List<Item>();
    }

    public void Add(Item item)
    {
        item.Parent = this;
        Contents.Add(item);
    }
}

在自动映射中,您必须确保通过覆盖或约定将 Contents 集合标记为反向,并且其键列与父 属性 列相同。 我曾经在所有集合上设置 Inverse() 约定并将其键列覆盖为 parent_id