0

我知道您可以通过调用 .ToFuture<>() 扩展方法来执行 Linq to NHibernate 查询作为未来。但是,我没有加载映射实体,而是直接将数据加载到 DTO 中。所以你会得到类似的东西:

var results = (from e in session.Query<Entity>()
               where e.Reference.Id == someId
               orderby e.Name
               select new Dto
               {
                   Id = e.Id,
                   Name = e.Name,
                   // ...
               }).ToFuture<Dto>();

这不像我想要的那样工作(我敢说是预期的)。我现在收到一个错误:The value "System.Object[]" is not of type "Entity" and cannot be used in this generic collection.如果我删除.ToFuture()它确实有效,但查询没有批处理。

我知道您可以使用 QueryOver API 来做到这一点,我只是更喜欢 Linq to NH,因为它的代码更加简洁。

4

1 回答 1

0

它看起来像一个错误。如果您可以创建一个简单的复现测试用例,请在https://nhibernate.jira.com/输入一个新问题。

在此之前,请验证您是否使用的是最新版本(当时为 3.2),因为在此版本中已经修复了一个类似的缺陷

于 2011-11-09T14:20:00.510 回答