Fluent nhibernate 如何在fluent nhibernate中将复合主键映射到外键?
我有以下表格:Fluent nhibernate 如何在fluent nhibernate中将复合主键映射到外键?,fluent-nhibernate,Fluent Nhibernate,我有以下表格: table A: FOO (PK) | CLIENT (PK) table B: BAR (PK) | CLIENT (PK/FK) | FOO (FK) 主键->主键 FK->外键 a和B之间存在一对多的关系。 我不能简单地这样做: class AMap { public AMap() { CompositeId().KeyReference(a => a.FOO) .KeyRefere
table A:
FOO (PK) | CLIENT (PK)
table B:
BAR (PK) | CLIENT (PK/FK) | FOO (FK)
主键->主键
FK->外键
a和B之间存在一对多的关系。
我不能简单地这样做:
class AMap
{
public AMap()
{
CompositeId().KeyReference(a => a.FOO)
.KeyReference(a => a.CLIENT);
HasMany(a => a.B);
}
}
class BMap
{
public BMap()
{
CompositeId().KeyReference(a => a.BAR)
.KeyReference(a => a.CLIENT);
References(a => a.A);
}
}
它将失败,但出现以下异常:
外键(FKE7804EB3DA7EBD4B:B[FOO])必须与引用的主键(A[FOO,CLIENT])具有相同的列数
是否可以使用fluent nhibernate正确映射此问题?找到了解决方案:
HasMany(a => a.B).KeyColumns.Add("FOO", "CLIENT").Cascade.All();