這個問題可能已經回答了某處(如果有的話,我希望有鏈接!)。但是因爲我不知道我想要做什麼類型的linq查詢,所以我一直無法找到任何幫助我的東西。LINQ to SQL:在哪裏條件下的子過濾器
我已經有一個非常簡單的查詢設置來獲取DomainSequences類型的所有記錄。
var query = db.DomainSequences;
有不同類型的域序列。我想要所有這些。但是,對於DomainType屬性等於'AT'的記錄,我只想返回一些'AT'記錄(即對那些進行where子句以過濾'AT'記錄但仍然要返回所有非「AT」的記載。
更簡單地說,我想所有DomainSequence記錄,但對於具有DomainType ==「AT」的記載,然後返回那些只有在滿足一定的條件。
我能想到的做類似的東西做的一種方式:
query.Where(x => x.DomainType != "AT" || (x.DomainType == "AT" && AT conditions....));
我認爲這應該工作,但問題是當我必須做其他子過濾器然後它開始變得更加混亂和複雜得很快。
理想情況下,我想這樣做
query.Where(x => x.DomainType == "AT" || x.DomainType == "KS")
.WhereIf(y => y.DomainType == "AT" then apply filter on those)
.WhereIf(z => z.DomainType == "KS" then apply filter to these);
我不知道是否有辦法做到在LINQ或SQL這種類型的子濾波器的(雖然我想象有)。有關如何可以相對乾淨地完成這些建議的任何建議?
謝謝!