2010-12-19 80 views
1

在我的NHibernate的映射,我有东西,看起来像NHibernate的3,SQL查询,IndexOutOfRangeException

<sql-query name="spLogin"> 
    <return class="User" /> 
    EXEC dbo.spLogin :username, :password 
</sql-query> 

的问题是,spLogin不返回所有用户实体的属性。如果缺少其中一个属性,nHibernate将在结果集中不存在的属性上引发IndexOutOfRangeException。

如果实体被检索为不返回所有属性的sql查询的一部分,那么nHibernate不能延迟加载此属性是否有原因?

回答

0

16.2.2. Using stored procedures for querying

你有没有尝试添加<return-property/>元素?

您希望延迟加载的属性标记为懒惰?

+0

我已经尝试添加我只需要返回属性并将可选属性标记为懒惰。 – nlaq 2010-12-19 21:00:39

0

今天早上我一直在努力解决这个错误。事实证明,我的返回属性元素没有刚好匹配从存储过程返回的内容。一旦纠正这个错误,错误就消失了。