NHibernate存储过程问题

标签 nhibernate hbm

我很难尝试让我的存储过程与 NHibernate 一起工作。 SP返回的数据不对应任何数据库表。

这是我的映射文件:

<?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 似乎没有添加到持久性字典中,因为 hbm.xml 中没有定义类映射(仅 sql-query)。稍后在 CheckNamedQueries 函数中,它无法找到 SomeClass 的持久化对象。

我已经检查了所有明显的东西(例如,将 hbm 作为嵌入式资源),我的代码与我在网络上找到的其他示例并没有太大不同,但不知何故我就是无法让它工作。知道如何解决这个问题吗?

最佳答案

那么,SomeClass 的类映射在哪里?

您仍然需要映射它。阅读http://nhibernate.info/doc/nh/en/index.html#querysql-load .

关于NHibernate存储过程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2589860/

相关文章:

nhibernate - 为每个 ViewModel 创建一个 ISession 实例

nhibernate - 如何输出 Fluent NHibernate 创建的 HBM?

c# - 使用 Nhibernate hbm 映射在具有相同 ID 的多个表中插入记录

Java - 使用 Hibernate (HBM) 在数据库中引用 Enum(数字值)

nhibernate - 当数据库发生更改时,您如何管理ORM层?

c# - 实例化一个休眠集合

c# - Fluent NHibernate MySQL 批处理

c# - 如何映射NHibernate变量表引用?

java - 是否可以在 HBM 中的 SET 元素内定义默​​认对象?

java - 为什么 hibernate 状态不创建这个我的表?