2010-03-23 4 views

Odpowiedz

9

Może błędnie odbieram pytanie, ale nie musisz całkowicie zmieniać mapowania hbm.

Możesz nadal używać płynnego NHibernate do mapowania klas i używania hbm tylko dla zapytań nazwanych. W swojej konfiguracji uwzględnisz encje i hbms.

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

W swojej namedQueries.hbm.xml wtedy tylko definiować nazwane zapytania:

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

Gdzie to wygląda dla pliku .hbm.xml? – codeulike

+2

Musisz zdefiniować plik .hbm.xml jako zasób osadzony. Ta linia: m.HbmMappings.AddFromAssemblyOf (); mówi nhibernate, w którym projekt ma wyglądać (SomeEntityMap nie musi być mapą, a raczej dowolną klasą, która znajduje się w tym samym projekcie co plik hbm.xml) –

Powiązane problemy