我有这样的查询:
var query = scope.Session.QueryOver<Task>().Where(s => s.Code == code && s.Flag == flag && s.Antry != null);
我有第二个问题:
var personQuery = scope.Session.QueryOver<Person>();
查询有一个字段ID,对应personQuery
中的ID。
我想要的是使personQuery仅包含查询中存在的ID。到目前为止,我一直这样做:
int[] arr = query.Where(i=> i.Id!=null).List<int>().ToArray();
entryQuery.Where(i => i.Id.IsIn(arr));
但是,我认为这会失败,因为我知道:
query.Where(i=> i.Id!=null).List<int>().ToArray();
不会返回整数数组,而是返回查询对象。
那我怎么才能在查询中得到整数的id?
答案 0 :(得分:2)
要从查询中仅获取整数id,您可以选择一个只包含您感兴趣的属性的匿名类型:
var integerids = scope.Session.QueryOver<Person>()
.Select(p => p.Id)
.List<int>();