1

私はこのようなクエリを持っています:

var query = scope.Session.QueryOver<Task>().Where(s => s.Code == code && s.Flag == flag && s.Antry != null);

2番目のクエリがあります:

var personQuery = scope.Session.QueryOver<Person>();

クエリには、のIDに対応するフィールド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 に答える