我想将Operationfinancial
映射为Operation
的连接子类。该模型与我发现的示例的不同之处在于两者都使用复合键。
操作地图。
public class OperationMap : ClassMapping<Operation>
{
public OperationMap()
{
this.Table("ECM_OPE_Operation");
this.ComponentAsId(
x => x.Id, compAsId =>
{
compAsId.Property(x => x.Id, m => { m.Column("Id"); m.NotNullable(true); });
compAsId.Property(x => x.EventId, m => { m.Column("EventId"); m.NotNullable(true); });
});
this.Property(x => x.CreatedOn, map => map.NotNullable(true));
}
}
OperationFinancial Map。
public class OperationfinancialMap : JoinedSubclassMapping<OperationFinancial>, IEntityMap
{
public OperationfinancialMap()
{
this.Table("ECM_OFI_OperationFinancial");
this.Key(m =>
{
m.Column("Id");
m.Column("EventId");
});
this.Property(x => x.Quantity, map => map.NotNullable(true));
this.Property(x => x.Amount);
}
}
但是当我跑步时我发现了这个错误
外键(FK3EDDC7CF4D8FE893:ECM_OFI_OperationFinancial [EventId]))必须与引用的主键具有相同的列数(ECM_OPE_Operation [Id,EventId])
任何想法?
答案 0 :(得分:0)
这是解决方案
Key(key => key.Columns(c => c.Name("Id"), c => c.Name("EventId")));