次のようにC#Lambdalinqクエリがあります。
public IQueryable<CtArticleDetail> GetArticleDetailsByTagNames(string tagNames)
{
return db.CtArticleTags.Where(m => tagNames.Contains(m.CtTag.Name)
&& m.CtArticleDetail.ExpirationDate > DateTime.Now
&& m.CtArticleDetail.ArticleStatusId == (int)ArticleStatus.Published)
.Select(m => m.CtArticleDetail).OrderBy(x => x.LiveDate).Distinct();
}
これは、「含む」のためにわずかに間違ったデータリストを返します。パラメータは実際には次の形式になります:EG( "AterSale、GeneralSale")。結果リストには、他の販売タイプのarticles.EG(「Sale」または「ImportedSale」)が含まれます。
reusltリストは、渡されたパラメーターとしての正確なリストである必要があります。誰かplsのアドバイスはできますか?
var mustContain = new[] {"A", "B");
var foos = new List<Foo>(){
new Foo1 {Tags = "A"},
new Foo1 {Tags = "B"},
new Foo2 {Tags = "A"},
new Foo2 {Tags = "C"}
};
mustcontainがA、Bの場合、Foo1が必要です