Wie erstelle ich dieses Referenz-Mapping in Fluent NHibernate?
-
11-09-2019 - |
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
}
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