Question

considérer la classe suivante:

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

qui est mis en correspondance à la table des commandes. Est-il possible de cartographier la propriété CustomerName à la table des clients par la relation clé étrangère?

Était-ce utile?

La solution

Oui, vous pouvez utiliser le rejoindre élément de mappage pour cela. Une autre option consiste à tracer une vue au lieu d'une table. Mais si possible, vous devez prendre l'approche orientée objet et cartographier les nombreux à plusieurs entre l'ordre et le Client.

Autres conseils

Je vous suggère fortement de ne pas utiliser pour cette <join/>. Bien qu'il accomplirait ce que vous avez demandé, il crée d'autres problèmes.

Au lieu de cela, l'ordre doit avoir une relation avec le client. Vous pouvez ensuite projeter le nom si vous voulez, bien qu'il soit plus facile à utiliser juste order.Customer.Name.

Alors, il se résume à ceci:

1) Ajouter une propriété Customer à Order

public virtual Customer Customer { get; set; }

2) Plan du bien (dans l'exemple, CustomerId est le nom de la colonne FK)

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

3) Si vous voulez spécifiquement avoir une propriété CustomerName, projet il du Client:

public virtual string CustomerName { get { return Customer.Name; } }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top