【发布时间】:2014-03-20 17:40:36
【问题描述】:
我有一张桌子,我们叫 A。 A 有字段 - objId。
还有其他表,我们称之为 B、C 和 D。它们有一个 A 记录列表。 需要通过将A记录添加到表B,C和D之一的A记录列表中来创建记录。 objId字段需要是B / C / D记录的PK(id)谁拥有列表A.
这意味着 - objId 是许多表的 FK。 我从表 B 开始。 但是在 B 表创建之后,创建了表 A 的字段 objId。现在桌子 C 和 D 会怎样?他们无法在表中创建 objId 列。
代码是:
<id name="Id">
<generator class="guid" />
</id>
<bag name="As" cascade="All">
<key column="ObjId" />
<one-to-many class="A" />
</bag>
<class name="A">
<id name="Id">
<generator class="guid" />
</id>
<property name="ObjId" />
public class B
{
public virtual Guid Id { get; set; }
public virtual IList<A> As{ get; set; }
}
public class A
{
public virtual Guid Id { get; set; }
public virtual string ObjId { get; set; }
}
将A记录添加到B:
this.Update(session =>
{
var bRecord = ....;
bRecord.As.Add(new ARecord {
...
});
session.Update(bRecord);
});
我需要如何创建正确的关联?
【问题讨论】:
标签: c# sql .net nhibernate