2016-12-19 14 views
3

各メッセージにオプションのList<Image>オブジェクトを含めたいとします。私は各会話のためにデータベースに往復する必要はないと思う。LINQには匿名タイプを選択するときにネストされたプロパティが含まれています

私は通常会話を選択し、必要なプロパティを含めるためにIncludeを使用しますが、そのメソッドはネストされたコレクションに対応していません。これは私の使用例の要件です。

var conversations = await (from c in db.Conversations 
      select new { 
       conversation = c, 
       messages = c.Messages.OrderByDescending(m => m.CreateDate).Take(50) 
      }).ToListAsync(); 

今のメッセージは、関連List<Image>オブジェクト

+0

匿名型が問題ですか?代わりに具体的な型に ''選択するとどうなりますか? –

+0

@RobertHarvey私は匿名のタイプが本当に問題に関わっているとは思わない。私は、「私は一緒にデータベースのテーブルを反映していないオブジェクトの束を選択しています」と言う方法を見つけることができませんでした。私がちょうど 'c'を選択していたなら、私が望むものを達成するために 'include'メソッドを使うことができました。 –

答えて

2

は、あなたのmessagesはあなたが必要なプロパティが含ま投影も作り得ることはありません:

var conversations = await (from c in db.Conversations 
     select new { 
      conversation = c, 
      messages = c.Messages.OrderByDescending(m => m.CreateDate) 
      .Select(m => new {message = m, relatedThing = m.RelatedThing}) 
      .Take(50) 
     }).ToListAsync(); 
関連する問題