2010-04-07 18 views
3

Je vais avoir du mal à essayer d'obtenir ma procédure stockée fonctionne avec NHibernate. Les données renvoyées par le fournisseur de services ne correspondent à aucune table de base de données.problème de procédure stockée NHibernate

Ceci est mon fichier de mapping:

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

Voici ma classe de domaine:

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

Quand je lance le code, il échoue avec

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

à la ligne 80

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

Lorsque je déboguer dans le code NHibernate, il semble que SomeClass n'est pas ajouté au dictionnaire, car il n'y a persister pas un mappage de classe (seulement-requête SQL) définie dans hbm.xml. Et plus tard dans la fonction CheckNamedQueries, il n'est pas capable de trouver la persistance pour SomeClass.

J'ai vérifié toutes les choses évidentes (par exemple faire hbm comme une ressource intégrée) et mon code n'est pas trop différent des autres échantillons que j'ai trouvés sur le web, mais je n'arrive pas à le faire fonctionner. Une idée de comment je peux résoudre ce problème?

Répondre