2008-10-29 7 views
2

Voici une version simplifiée de mon modèle de base de données. J'ai deux tables: "Image" et "HostingProvider" qui ressemblent à ceci:NHibernate: Comment combiner des champs de deux classes?

[Image]

  • id
  • nom
  • hostingprovider_id

[ HostingProvider]

  • id
  • base_url

image HostingproviderId est un beaucoup à une relation de clé étrangère à la table de HostingProvider. (Chaque image a un fournisseur d'hébergement).

Essentiellement, je veux être en mesure d'avoir mon look classe image comme ceci:

[Image]

  • Id
  • base_url
  • nom

En NHibernate, comment puis-je créer un fichier de mapping qui va combiner base_url de la table HostingProvider, dans la classe Image?

Répondre

2

Qu'est-ce que vous cherchez est ceci:

http://ayende.com/Blog/archive/2007/04/24/Multi-Table-Entities-in-NHibernate.aspx

Voici un aperçu de ce qu'il ressemble à:

<class name="Person"> 

     <id name="Id" column="person_id" unsaved-value="0"> 

       <generator class="native"/> 

     </id> 



     <property name="Name"/> 

     <property name="Sex"/> 



     <join table="address"> 

       <key column="address_id"/> 

       <property name="Address"/> 

       <property name="Zip"/> 

       <property name="Country"/> 

       <property name="HomePhone"/> 

       <property name="BusinessPhone"/> 

     </join> 

</class> 
+0

C'est exactement ce que je cherchais. Merci beaucoup ! –

+0

.. alors s'il vous plaît marquer comme "répondu" :) Merci! –

0
public class Image { 
    public virtual HostingProvider HostingProvider { get; set; } // NHibernate takes care of this 
    public virtual string BaseUrl { get { return HostingProvider.BaseUrl; } } 
} 
+0

Ce n'est pas ce que l'OP demandait. Il veut une classe, 2 tables. –

Questions connexes