0

SelectMany を使用して、条件付きの最初のクエリを評価しようとしています。これらの結果に基づいて、別のクエリを実行します。SelectMany がこれを実行できるはずだと言われました。私が抱えている問題は、SelectMany が最初のラムダ式の条件を無視しているように見えることです。私の問題は最初の式にあるかもしれませんが、よくわかりません。私が間違っていることについてのアイデア。

初め

  //get source based on user and active flag
  var query = _sourceRepository.GetTable().Where(s => s.ActionItemStates.Any(ais => ais.UserId == user.Id && ais.IsActive == active));  

Second - 最初の条件を無視します

var queryActionItems = query.SelectMany(x => x.ActionItemStates).OrderBy(x => x.ActionItem.SortOrder);

ここに画像の説明を入力

4

1 に答える 1

1

ActionItemStates最初のクエリは、すべてのユーザーが userId と IsActive を true にすると主張していません。

それは単に : 少なくとも 1 つが私の条件を満たしている場所をすべて選択しくださいSources ActionItemState

しかし、2 番目のクエリでActionItemStatesは、条件に送信されなくなりました。最初のクエリで選択したActionItemStatesものからすべてを取得するだけです。Sources

最初のクエリは、 の間Sourcesではなく の間で選択を行いますActionItemStates

さて、これは機能しない理由を説明しているだけです。本当の答えを得るには、何を取得したいのかを明確に説明する必要があります!

于 2012-10-15T17:47:45.333 に答える