Frage

Mit Fluent NHibernate Ich brauche eine Ahnung, wie meine Rechnungsklasse zuzuordnen.

public class Buyer
{
    public virtual int Id { get; set; }

    public virtual string Name { get; set; }
    public virtual string TaxRegNo { get; set; } 
    // .... more properties....
}

public class Invoice
{
    public virtual int Id { get; set; }

    public virtual int IdBuyer { get; set; }
    public virtual Buyer Buyer { get; set; } 
    // ....more properties
}

Das Problem ist, dass ich in der Rechnungsklasse haben will:

  • BuyerId - nur eine ganze Zahl ID als Referenz und foregin Schlüsselbeziehung
  • Eine Kopie fast alle Käufer Eigenschaften (ihr Buchhaltungsbeleg und Eigenschaften können nicht nach der Bestätigung geändert werden) - als Komponente

habe ich versucht, diese mit folgenden Abbildung, aber es funktioniert nicht

    public InvoiceMap()
    {
        Id(x => x.Id);

        References(x => x.IdBuyer);
        Component(x => x.Buyer, BuyerMap.WithColumnPrefix("buyer_"));
    // ....more properties
    }
War es hilfreich?

Lösung

Sie würden normalerweise Karte nicht sowohl den Fremdschlüssel und das untergeordnete Objekt. Wenn Sie beide tun Karte, dann tut dies in der Abbildung (oder ähnlich):

References(x => x.Buyer);
Map(x => x.IdBuyer).Column("BuyerId").Not.Insert().Not.Update();

Dann verdoppeln Sie nicht auf den Spaltennamen in SQL-Anweisungen auf, die Fehler um nicht übereinstimmen Anzahl von Parametern verursacht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top