2010-04-07 2 views
3

Мне тяжело пытаться заставить мою хранимую процедуру работать с NHibernate. Данные, возвращаемые из SP, не соответствуют какой-либо таблице базы данных.Проблема с хранимой процедурой NHibernate

Это мое отображение файла:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DomainModel" namespace="DomainModel.Entities"> 

    <sql-query name="DoSomething"> 
     <return class="SomeClass"> 
      <return-property name="ID" column="ID"/> 
     </return> 
     exec [dbo].[sp_doSomething] 
    </sql-query> 

</hibernate-mapping> 

Вот мой домен класс:

namespace DomainModel.Entities 
{ 
    public class SomeClass 
    { 
     public SomeClass() 
     { 
     } 
     public virtual Guid ID 
     { 
      get; 
      set; 
     } 
    } 
} 

Когда я запускаю код, он терпит неудачу с

Exception Details: NHibernate.HibernateException: Errors in named queries: {DoSomething} 

на линии 80

Line 78:    config.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NHibernate.config"));    
Line 79: 
Line 80:    g_sessionFactory = config.BuildSessionFactory();  

Когда я отлаживаю код NHibernate, кажется, что SomeClass не добавлен в словарь persister, потому что в hbm.xml отсутствует сопоставление классов (только sql-query). А позже в функции CheckNamedQueries он не сможет найти persistor для SomeClass.

Я проверил все очевидные вещи (например, сделаю hbm как встроенный ресурс), и мой код не сильно отличается от других образцов, которые я нашел в Интернете, но почему-то я просто не могу заставить его работать. Любая идея, как я могу решить эту проблему?

ответ

Смежные вопросы