2009-10-23 11 views
4

J'utilise Nhibernate avec fluidité. Maintenant, je veux appeler une procédure stockée et utiliser des requêtes nommées. Je créé quelques xml:NHibernate Fluent et nommé Requêtes

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-mapping> 
    <sql-query name="CleanAppendicesHierarchies"> 
    exec intf_CleanUpAppendixHierarchy 
    </sql-query> 
</hibernate-mapping> 

FluentConfiguration cfg = 
    Fluently.Configure().Database(MsSqlConfiguration.MsSql2005.ConnectionString(
c => c.Is(dbConnectionString)).ShowSql()) 
.Mappings(m => m.FluentMappings.AddFromAssembly(mappingAssembly)) 
.Mappings(m => m.HbmMappings.AddFromAssembly(mappingAssembly)); 

Maintenant, j'ai eu toujours l'exception: { "hibernate-mapping xmlns = '' n'a pas été prévu"} (exception la plus intérieure) { "Il C'est une erreur dans le document XML (1, 2). "}

Je bidouillais mais si je supprime le mappage hibernate, il se plaint de la balise sql-query.

Qu'est-ce qui ne va pas dans mon approche? J'ai googlé déjà trouvé des exemples, mais bien sûr avec des Fluent ....

Tout indice est apprécié

Répondre

3

étrange, je l'ai eu à travailler avec ce que:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        assembly="FactsheetsDataLayer" 
        namespace="FactsheetsDataLayer"> 
    <sql-query name="CleanAppendicesHierarchies"> 
    exec intf_CleanUpAppendixHierarchy 
    </sql-query> 
</hibernate-mapping> 

Je nommé le fichier XML comme: POCOClassName.hbm.xml

Je ne sais pas ce qui a aidé, mais maintenant il a travaillé ....

+0

il est évident que la déclaration d'espace de nom ne doit pas être vide dans les fichiers .hbm. C'est pourquoi au début vous avez une exception disant que {{"hibernate-mapping xmlns = '' n'était pas attendu."} 'Mais quand vous mettez' xmlns = "urn: nhibernate-mapping-2.2" 'NHibernate était satisfait. – Oliver