我有:
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结果......
由于
答案 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次往返