上の他の子との関係は、だから、私はInvoice
オブジェクトそうのようにあります。そして、流暢アイデンティティの1子との関係、複合キー
public class Invoice
{
public virtual long InvoiceId { get; set; }
public virtual string InvoiceNumber{ get; set; }
public virtual Customer Customer { get; set; }
public virtual Site Site { get; set; }
public virtual IList<InvoiceLineItem> LineItems { get; set; }
public virtual IList<InvoicePayment> Transactions { get; set; }
}
、私はこの
public class InvoiceLineItem
{
public virtual long InvoiceLineItemId { get; set; }
public virtual Invoice Invoice{ get; set; }
}
などの請求書の行項目を持っています
そして最後に、請求書の支払い
public class InvoicePayment
{
public virtual long InvoicePaymentId { get; set; }
public virtual Invoice Invoice{ get; set; }
}
は問題が私の基本的なスキーマで、これですInvoicePayment
の場合、私はInvoiceNumber
,SiteId
(Site
オブジェクト)、CustomerId
(Customer
オブジェクト)を持っています。
InvoiceLineItemには、Invoice
にリンクされたInvoiceIdがあります。それがあるとして、
public class InvoicePaymentMap : ClassMap<InvoicePayment>
{
public InvoicePaymentMap()
{
Table("InvoicePayments");
Id(x => x.InvoicePaymentId).GeneratedBy.Identity();
CompositeId()
.KeyProperty(x => x.Site, "SiteId")
.KeyProperty(x => x.Customer, "CustomerId")
.KeyProperty(x => x.InvoiceNumber);
References<Site>(x => x.Site, "SiteId");
References<EPayCustomer>(x => x.Customer, "CustomerId");
References<FTNI.Core.Model.Invoice.Invoice>(x => x.Invoice)
.Columns("SiteId", "CustomerId", "InvoiceNumber")
.Nullable();
}
}
ので
public sealed class InvoiceMap : ClassMap<Invoice>
{
public InvoiceMap()
{
Table("InvoiceView");
Id(x => x.InvoiceId).GeneratedBy.Identity();
Map(x => x.InvoiceNumber);
References<Site>(x => x.Site, "SiteId");
References<Customer>(x => x.Customer, "CustomerId");
HasMany<InvoiceLineItem>(x => x.LineItems)
.Inverse();
HasMany<InvoicePayment>(x => x.Transactions)
.KeyColumns.Add("SiteId")
.KeyColumns.Add("EPayCustomerId")
.KeyColumns.Add("InvoiceNumber")
.Inverse();
}
}
ライン・アイテムのマッピング
public class InvoiceLineItemMap : ClassMap<InvoiceLineItem>
{
public InvoiceLineItemMap()
{
Table("InvoiceLineItems");
Id(x => x.InvoiceLineItemId).GeneratedBy.Identity();
References<FTNI.Core.Model.Invoice.Invoice>(x => x.Invoice, "InvoiceId");
}
}
そして最後に、私の請求書の支払いマッピング:
ので、請求書のための私のマッピングは、次のようになります、エラーが発生します
私は私ので、私のマッピングを調整することができますどのように)参照される主キー(InvoiceView [SITEID、CustomerIdの、InvoiceNumber])と同じ数の列を持っている必要があります:
外部キー(InvoiceLineItems [InvoiceId] FKE9F746C567E71B3Fは)コンポジットIDのインボイス支払いとID列の広告申込情報に参加しますか?