Frage

Sehen Sie die folgende Klasse:

class Order {
    int OrderId {get; set;}
    int CustomerId {get; set;}
    string CustomerName {get; set;}
    //other fields go here
}

, die Orders-Tabelle zugeordnet ist. Ist es möglich, die Eigenschaft Customer auf die Tabelle Kunden durch den Fremdschlüssel Bezug zur Karte?

War es hilfreich?

Lösung

Ja, können Sie die beitreten Abbildungselement für diese. Eine weitere Option ist eine Ansicht anstelle einer Tabelle abzubilden. Aber wenn möglich, sollten Sie den objektorientierten Ansatz und ordnen Sie den Viele-zu-viele-Beziehung zwischen Auftrag und Kunden.

Andere Tipps

Ich empfehle Ihnen nicht verwenden <join/> dafür. Obwohl es würde erreichen, was Sie aufgefordert, schafft es andere Probleme.

Stattdessen sollte Auftrag eine Beziehung mit dem Kunden hat. Sie können dann den Namen projizieren, wenn Sie wollen, obwohl es einfacher, nur Gebrauch order.Customer.Name.

Also, es läuft darauf hinaus, dieses:

1) Hinzufügen Customer Eigenschaft Order

public virtual Customer Customer { get; set; }

2) Ordnen Sie die Eigenschaft (im Beispiel CustomerId ist der Name der FK Spalte)

<many-to-one name="Customer" column="CustomerId"/>

3) Wenn Sie speziell eine CustomerName Eigenschaft, projizieren sie von Kunden haben wollen:

public virtual string CustomerName { get { return Customer.Name; } }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top