Linq到NHibernate +转型+期货

时间:2011-11-09 13:29:35

标签: nhibernate linq-to-nhibernate future

我知道你可以通过调用.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更好,因为它的代码更清晰。

1 个答案:

答案 0 :(得分:0)

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

在此之前,请验证您是否使用的是最新版本(当时为3.2),因为此版本中已修复了similar defect