最初にいくつかのコードを表示してから、私が欲しいものを教えようとします。LINQリスト内のリストを選択する
Thread thread = db.Threads
.AsNoTracking()
.FirstOrDefault(x=>x.Name == name);
var threadTopics = db.Topics
.AsNoTracking()
.Where(x => x.ThreadId == thread.Id && x.PinType != PinType.Advertisement)
.ToList();
thread.Topics = threadTopics;
基本的に、私は話題と私のスレッドをしたいが、私はすべてのトピックを必要としない、私は「ない広告」のトピックのみ必要です。これは私のために働くが、私は1つの要求でこれを行うことができると思うが、私は方法が分からない。
は、私はこれを試してみましたが、それは働いていない:Thread thread = db.Threads
.AsNoTracking()
.Where(x=>x.Name == name)
.Select(x=> new Thread
{
Topics = x.Topics.Select(x=>x.PinType != PinType.Advertisement)
});
モデル:
class Thread {
int ThreadId {get;set;}
ICollection<Topic> Topics {get;set;}
}
class Topic {
int TopicId {get;set;}
int ThreadId {get;set;}
Thread Thread {get;set;}
PinType PinType {get;set;}
}
あなたのモデルがあなたの関係を理解するのに役立つでしょう(そしてSOはソーシャルチャットサイトではありません:) –
いいえ、これは動作しません。私はTopics.PinTypeを使うことはできません。TopicsはCollectionです.PinTypeを調べるにはTopicが必要です。 – Evgenii
次に、 '.Where(x => x.Topics.Any(y => y.PinType!= PinType.Advertisement))'が必要です。 –