NHibernate Query <t>具有分离标准...... </t>

时间:2012-03-06 13:48:58

标签: linq nhibernate linq-to-nhibernate

我有:

var query = session.Query<MyClass>();    

// Here I need to execute a detached criteria, like that :
//  query.UnderlyingCriteria.Add(SpatialExpression.Within("Geo", extent));

var t = query.Select(item => new MyClassView
                                      {
                                          Name, Year, Code
                                      }

这是使用Query执行此操作的方法吗?或者另一种方式?我需要一个IQueryable结果......

由于

1 个答案:

答案 0 :(得分:2)

linq提供程序不使用Criteria,它使用来自HQL解析器的AST。如果你真的需要一个IQueryable,那么你可以制定一个像这样的查询

var ids = session.QueryOver<MyClass>()
    .UnderlyingCriteria.Add(SpatialExpression.Within("Geo", extent))
    .Select(myclass => myclass.Id)
    .List<int>();

var query = session.Query<MyClass>()
    .Where(x => ids.Contains(x.Id))
    .Select(item => new MyClassView
    {
        Name, Year, Code
    });

注意:这使用2次往返