2012-02-02 4 views
6

Devo utilizzare una query HQL nel mio progetto e ho un errore: "l'entità non è mappata".Come consentire l'importazione automatica = "true" quando si utilizza la mappatura di Nhibernate 3.2 per codice?

Quando ho letto nHibernate HQL - entity is not mapped o nHibernate HQL - entity is not mapped (o altro sito Web), posso leggere che devo usare auto-import = "true" su ogni classe.

<hibernate-mapping 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
namespace="BusinessObjets" assembly="BusinessObjects" 
xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> ... 

Come possiamo impostare questa importazione automatica quando utilizziamo la mappatura per codice con nibernato 3.2?

uso questo codice per caricare la mappatura:

var mapper = new ModelMapper(); 
mapper.AddMappings(typeof(Repository).Assembly.GetTypes()); 
return mapper.CompileMappingForAllExplicitlyAddedEntities(); 

saluti

risposta

7

Non è possibile impostare in mapping-by-codice direttamente, ma è possibile modificare HbmMapping oggetto restituito dal metodo CompileMappingForAllExplicitlyAddedEntities, prima di passarlo all'oggetto Configuration:

mapping.autoimport = true; 
+1

grazie. è difficile trovare tutte le cose con la mappatura tramite il codice –

+0

Mi ha risparmiato un'ora di scavare attraverso il codice di NHibernate - grazie! – Dav