1

我有一个这样的查询:

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.

我想要的是让 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 呢?

4

1 回答 1

2

要仅从查询中获取整数 id,您可以选择仅包含您感兴趣的属性的匿名类型,例如:

var integerids = scope.Session.QueryOver<Person>()
    .Select(p => p.Id)
    .List<int>();
于 2012-07-17T08:19:17.143 回答