2009-10-23 64 views
4

我用流利的Nhibernate。 现在我想调用一些存储过程并使用命名查询。 我创造了一些XML:NHibernate流利和命名查询

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

现在我总是异常:{ “休眠映射的xmlns = '' 是没有预料到”}(最内层除外) {“有是在XML文档(1,2)中的错误。“}

我摆弄,但如果我删除hibernate-mapping然后它抱怨sql-query标记。

我的方法有什么问题?我用Google搜索已经找到例子,但当然有出良好....

任何暗示表示赞赏

回答

3

奇怪的,我得到了它与工作:

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

然后我命名的XML,如: POCOClassName.hbm.xml

我不知道是什么帮助,但现在它的工作....

+0

显然,命名空间声明不能在.hbm文件是空的。这就是为什么起初你得到一个异常说'{“hibernate-mapping xmlns =''不是预期的。”}但是当你把'xmlns =“urn:nhibernate-mapping-2.2”'在那里NHibernate很满意。 – Oliver 2011-05-31 00:42:18