1

我在没有显式列的查询上使用 Futures 查询时遇到问题。有问题的查询如下:“SHOW META;” (请参阅http://sphinxsearch.com/docs/1.10/sphinxql-show-meta.html)此查询返回一个始终具有两列和多行的表。现在,当我按如下方式执行查询时,一切正常:

var query = session.CreateSQLQuery("SHOW META");
var metaData = query.List(); // metadata is a list of object[] instances of length two

变量“元数据”现在将包含一个长度为 2 的 object[] 实例列表,其中列表中的每个 object[] 项包含第一列的值 (Variable_name) 和第二列的值 (Variable)。

但是,当我尝试将此查询转换为 Futures 查询时,我得到一个长度为 0 的 object[] 实例列表:

var query = session.CreateSQLQuery("SHOW META");
var futureQuery = query.Future();
var metaData = futureQuery.ToList(); // metadata is a list of object[] instances of length zero

换句话说,我确实为结果中的每一行得到了一个 object[],但没有添加任何数据。我究竟做错了什么?或者这是 NHibernate 的限制?

4

2 回答 2

1

如果我理解正确,Future 查询只是一种批处理查询的方法,而不是跟踪会话中的对象关系。

因此,如果这是正确的,那么它将您的未来查询和正常查询视为单独的一个,并且您不会获得对象列表。

于 2012-08-17T18:10:58.033 回答
0

问题出在 NHibernate 版本 3.3.1 中,future 有时无法按预期工作。此错误已在 NHibernate 的 3.3.3 版本中修复。

于 2014-08-22T07:19:21.173 回答