2010-03-23 24 views

Trả lời

9

Có thể tôi đang hiểu sai câu hỏi, nhưng bạn không phải chuyển sang ánh xạ hbm hoàn toàn.

Bạn có thể tiếp tục sử dụng NHibernate thành thạo để lập bản đồ các lớp và chỉ sử dụng hbm cho các truy vấn được đặt tên. Trong cấu hình của bạn, bạn sẽ bao gồm các thực thể và các hbms.

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

Trong namedQueries.hbm.xml của bạn sau đó bạn chỉ xác định các truy vấn tên:

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

đâu nó tìm kiếm các tập tin .hbm.xml? – codeulike

+2

Bạn phải xác định tệp .hbm.xml là tài nguyên được nhúng. Dòng này: m.HbmMappings.AddFromAssemblyOf (); nói với nhibernate mà dự án cần tìm (SomeEntityMap không cần phải là một bản đồ, thay vì bất kỳ lớp nào nằm trong cùng một dự án như tệp hbm.xml) –

Các vấn đề liên quan