当尝试对命名查询使用 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>
关于我可能在这里遗漏的任何建议?