我很难尝试让我的存储过程与 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/