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
我有一个与此类似的对象模型:
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