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

我不确定您的实际问题,但解决它的一种方法(并允许您的查询是可扩展的)是使用从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 回答