У меня есть бланк заказа с несколькими строками деталей. Эти подробные строки имеют составной ключ из трех столбцов.
Я не могу понять, как я могу это сопоставить, я продолжаю получать следующую ошибку:
NHibernate.FKUnmatchingColumnsException : Foreign key (FK_BE1C7EE8:INTERN_BON [BONNR, ARTNO, VENR])) must have same number of columns as the referenced primary key (BESTELBON [BONNR])
Это код для сопоставлений:
public class OrderFormMap : ClassMap<OrderForm>
{
public OrderFormMap()
{
Table("BESTELBON");
Id(x => x.Id, "BONNR").GeneratedBy.Assigned();
Map(x => x.OrderDate, "BONDATUM");
References(x => x.Supplier, "LEVCODE");
Map(x => x.IsUrgent, "DRINGENDEBB");
Map(x => x.Comment, "BONCOMMENT");
Map(x => x.Type, "BONTYPE");
HasMany(x => x.OrderFormDetails).KeyColumns.Add("BONNR", "ARTNO","VENR");
}
}
public class OrderFormDetailMap : ClassMap<OrderFormDetail>
{
public OrderFormDetailMap()
{
Table("INTERN_BON");
CompositeId()
.ComponentCompositeIdentifier(x => x.Id)
.KeyProperty(x => x.Id.ArticleId, "ARTNO")
.KeyProperty(x => x.Id.OrderFormNr, "BONNR")
.KeyProperty(x => x.Id.ConsumerId, "VENR");
Map(x => x.AmountCancelled, "ANNULATIE");
Map(x => x.AmountOrdered, "IBONBESTELD");
Map(x => x.PHVI, "PHVI");
Map(x => x.PricePerUnit, "IBONEENH");
References(x => x.Warehouse, "HMAGCODE");
}
}