Domanda

Ecco una versione semplificata del mio modello di database. Ho due tabelle: " Immagine " ;, & " HostingProvider " che assomigliano a questo:

[Immagine]

  • id
  • filename
  • hostingprovider_id

[HostingProvider]

  • id
  • base_url

Image HostingproviderId è una relazione di chiave esterna molti-a-uno con la tabella HostingProvider. (Ogni immagine ha un provider di hosting).

In sostanza voglio essere in grado di far apparire la mia classe Image in questo modo:

[Immagine]

  • Id
  • base_url
  • filename

In NHibernate, come posso creare un file di mappatura che combinerà base_url dalla tabella HostingProvider, nella classe Image?

È stato utile?

Soluzione

Quello che stai cercando è questo:

http: // ayende .com / Blog / archive / 2007/04/24 / multi-tavolo-Enti-in-NHibernate.aspx

Ecco una sbirciatina di come appare:

<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> 

Altri suggerimenti

public class Image {
    public virtual HostingProvider HostingProvider { get; set; } // NHibernate takes care of this
    public virtual string BaseUrl { get { return HostingProvider.BaseUrl; } }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top