LINQ to SQL对字符串执行OR

时间:2010-01-19 09:57:55

标签: c# linq-to-sql

我只是想执行一个LINQ查询来返回一组明年正在运行的课程ID和课程标题。作为其中的一部分,我需要执行OR查询,因为我也希望返回与明年有关的数据,这是在我的数据库中作为字符串保存并且是我唯一的问题,所以任何帮助都将是赞赏。

var result = (
    from a in Offering
    join b in Courseinfo on a.CourseID equals b.CourseID
    into temp
    from c in temp
    where c.Year == "10/11" || "11/12"
    select new { c.CourseID, c.CourseTitle }).DefaultIfEmpty();

3 个答案:

答案 0 :(得分:5)

将您的查询重写为where c.Year == "10/11" || c.Year == "11/12"

答案 1 :(得分:1)

如果你想能够动态选择年份,那么你可以做这样的事情

var years = new List<string>{"1989", "1994", "2004", "2007"};

然后将where更改为

where years.Contains(c.Year)

答案 2 :(得分:1)

这是一个基本的语法错误 - 在C#中你不能说:

  

“年份是2010年或2011年”。

你必须说:

  

“年份是2010年,或者年份是2011年”

所以你重写了这个:

where c.Year == "10/11" || "11/12"

这样:

where c.Year == "10/11" || c.Year == "11/12"