2011-01-02 6 views
0

Ich habe folgende Mapping-Datei:NHibernate Mapping-Problem - Kann ich mehrere Assemblies zuordnen?

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
assembly="Project1.Accounts" 
namespace="Project1.Core.Domain"> 
    <class name="Equipment" table="Equipment"> 
     <id name="ID" column="ID"> 
      <generator class="identity"></generator> 
     </id> 
     <property name="Name" /> 
     <property name="Description" /> 
     <property name="AccountID" /> 
     <property name="EquipmentTypeID" /> 
     <many-to-one name="Account" class="Project2.Core.Domain.Account, Project2.Core" column="AccountID"/> 
     <many-to-one name="EquipmentType" class="Insight.IT.Accounts.Core.Domain.EquipmentType, Insight.IT.Accounts" column="EquipmentTypeID"/> 
    </class> 

</hibernate-mapping> 

ich die folgende Fehlermeldung erhalten:

NHibernate.MappingException: Eine Vereinigung von dem Gerätetisch zu einer nicht zugeordneten Klasse verweist: Project2.Domain.Account

Nur um klar zu sein - Die Account-Klasse lebt in einer anderen Baugruppe als die Equipment-Klasse. Das Projekt, in dem sich die Account-Klasse befindet, verfügt über eine eigene Datei hibernate.cfg.xml.

Grundsätzlich sieht es so aus, als ob ich eine Möglichkeit brauche, mehrere Mapping-Assemblies in der Datei hibernate.cfg.xml zu referenzieren. Ist das möglich??

Antwort

0

Danke für die Antworten. Eigentlich habe ich es ein bisschen anders gemacht. Ich habe das Tag einfach aus der Datei hibernate.cfg entfernt und vollständig qualifizierte Namen in den Dateien .hbm.xml verwendet. Vielen Dank!!

1

Es ist möglich, dass Sie dies nur in Ihrer Mapping-Datei angeben müssen (und es sieht so aus, als hätten Sie das getan).

Haben Sie beide Baugruppen vor dem Erstellen von sessionfactory der NHibernate-Konfiguration hinzugefügt?

3

Sie können es wie folgt tun:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
     <property name="dialect">...</property> 
     <property name="connection.driver_class">...</property> 
     ... 
     <mapping assembly="MyProject.OtherAssembly"/> 
    </session-factory> 
</hibernate-configuration> 
+0

Ja, das wird es tun. Es muss nicht in einer Assembly sein, da Sie mehrere '' -Tags haben können. – ChrisAnnODell

Verwandte Themen