2010-03-23 14 views

Respuesta

9

Tal vez estoy malinterpretando la pregunta, pero no es necesario cambiar completamente a la asignación de hbm.

Puede continuar utilizando NHibernate con fluidez para asignar clases y usar hbm solo para consultas con nombre. En su configuración, debe incluir las entidades y hbms.

_sessionFactory = Fluently.Configure() 
.Mappings(m => 
{ 
    m.FluentMappings.AddFromAssemblyOf<SomeEntityMap>(); 
    m.HbmMappings.AddFromAssemblyOf<SomeEntityMap>(); 
}) 
.BuildSessionFactory(); 

En su namedQueries.hbm.xml que entonces sólo definir consultas con nombre:

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 
<query name="Some.Query.Of.Yours"> 
<![CDATA[ 
      from SomeEntity e 
      where e.Property = :propertyValue 
      ]]> 
</query> 
</hibernate-mapping> 
+0

¿de dónde buscar el archivo .hbm.xml? – codeulike

+2

Debe definir el archivo .hbm.xml como recurso incrustado. Esta línea: m.HbmMappings.AddFromAssemblyOf (); le dice a nhibernate a qué proyecto debe mirar (SomeEntityMap no necesita ser un mapa, sino cualquier clase que resida en el mismo proyecto que el archivo hbm.xml) –

Cuestiones relacionadas