我有以下表格:
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正确映射?
找到解决方案:
HasMany(a => a.B).KeyColumns.Add("FOO", "CLIENT").Cascade.All();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6776 次 |
| 最近记录: |