如何在流畅的nhibernate中将复合主键映射到外部?

slo*_*oth 3 fluent-nhibernate

我有以下表格:

table A:

 FOO (PK) | CLIENT (PK)

table B:

 BAR (PK) | CLIENT (PK/FK) | FOO (FK)
Run Code Online (Sandbox Code Playgroud)

PK - >主键

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

它将失败,但有以下异常:

外键(FKE7804EB3DA7EBD4B:B [FOO]))必须与引用的主键具有相同的列数(A [FOO,CLIENT])

是否可以使用流畅的nhibernate正确映射?

slo*_*oth 6

找到解决方案:

HasMany(a => a.B).KeyColumns.Add("FOO", "CLIENT").Cascade.All(); 
Run Code Online (Sandbox Code Playgroud)