1

当尝试对命名查询使用 Enumerable 方法时,使用无状态会话,如以下示例所示:

http://www.nhforge.org/doc/nh/en/#batch-statelesssession

我看到了 NotSupportedException。堆栈跟踪如下:

System.NotSupportedException: Specified method is not supported.
at NHibernate.Impl.StatelessSessionImpl.Enumerable(String query, QueryParameters parameters)
at NHibernate.Impl.QueryImpl.Enumerable()

这是我的代码片段:

IStatelessSession statelessSession = sessionFactory.OpenStatelessSession();
var fileLines = statelessSession.GetNamedQuery("GetLinesByFileId")
.SetInt32("FileIdInput", fileId).Enumerable<FileLineEntity>();

命名查询 GetLinesByFileId 在 hbm 中定​​义如下:

<query name="GetLinesByFileId" cacheable="false" read-only="true">
    <![CDATA[
        from FileLineEntity lineItem where lineItem.FileId=:FileIdInput 
      ]]>
  </query>

关于我可能在这里遗漏的任何建议?

4

1 回答 1

0

文档是错误的。此外,通过查看它,您可以知道它是从 Hibernate (Java) 复制的。

请改用该List方法。

于 2010-03-23T21:30:13.153 回答