0

40 個のアイテムを取得した次のエンティティ フレームワーク クエリがあります。

context.Questions
  .Where(x =>
    x.Access >= 1 &&
    x.Enabled == true
  ).ToList();

次に、次のように投影を試みました。

context.Questions
  .Where(x =>
    x.Access >= 1 &&
    x.Enabled == true
  ) 
  .Select(x => new {
    Duration = x.Duration,
    Text = x.Text,
    Answers = x.Answers.Select(y => new {
      Correct = y.Correct,
      Text = y.Text
    })
  }).ToList();

この場合、150 個のアイテムが取得されます...何が間違っているのでしょうか?

基本的に、質問のリストと、各質問に回答のリストが必要です。

ありがとう、ミゲル

4

1 に答える 1

1

これを試してみてください

context.Questions
  .Where(x =>
    x.Access >= 1 &&
    x.Enabled == true
  ) 
  .Select(u => new {
    Duration = u.Duration,
    Text = u.Text,
    Answers = u.Answers.Select(y => new {
      Correct = y.Correct,
      Text = y.Text
    })
  }).ToList();

これがあなたの問題を解決した理由は、使用する前に

.Select(x => ..)

where x=> はオリジナル.Where(x =>)を参照するため、where クエリからフィルタリングされたリストではなく、オブジェクトの完全なリストを参照しています。

于 2013-03-09T22:14:15.443 に答える