0

私はMP3ファイルの既存のオンラインライブラリに取り組んでいます。コードの一部は、シリーズタイトルに特定の文字列を含むデータベース内のファイルを検索します。

public ICollection<Series> ListTruthAndLifeSeries() {
return (from f in ActiveRecordLinq.AsQueryable<File>()
     where f.SeriesTitle.Contains("Truth and Life")
     orderby f.SeriesTitle
     select new { Name = f.SeriesTitle, Slug = f.SeriesTitleSlug })
                    .ToList().Distinct()
                    .Select(u => Parse(u.Name, u.Slug))
                    .OrderByDescending(u => u.Year)
                    .ThenBy(u => u.Name)
                    .ToList();
    }

これは問題なく機能します。ただし、シリーズタイトルに「Truth&Life」が含まれているレコードも返されるような条件を追加する必要があります。私は単に追加することによってこれをやろうとしました

or f.SeriesTitle.Contains("Truth & Life")

where句の後、ただしVisual Studioは、赤い波線の束を挿入し、orステートメントとその後のすべてをそのメソッドでグレー表示します。これを行うための正しい構文は何ですか?&を使用しないようにデータを変更することは、実用的なオプションではありません。

4

1 に答える 1

0

実際の問題についてはわかりませんが、問題を解決する(そしてクエリを拡張できるようにする)1つの方法は、IEnumerable<String>次のような派生コレクションを使用することです。

List<string> Titles = new List<string>();
Titles.Add("Truth and Life");
Titles.Add("Truth & Life");

 return (from f in ActiveRecordLinq.AsQueryable<File>()
         where Titles.Contains(f.SeriesTitle)
         orderby f.SeriesTitle
         select new { Name = f.SeriesTitle, Slug = f.SeriesTitleSlug })
       .ToList().Distinct()
       .Select(u => Parse(u.Name, u.Slug))
       .OrderByDescending(u => u.Year)
       .ThenBy(u => u.Name)
       .ToList();

アップデート

C#は、 OR演算子の宣言にor使用するものを使用しません。||

where f.SeriesTitle.Contains("Truth and Life")
      || f.SeriesTitle.Contains("Truth & Life")
于 2012-07-23T22:37:05.217 に答える