2010-01-19 54 views
1

我只是想執行一個LINQ查詢來返回一組明確運行的課程標識和課程標題。作爲這個的一部分,我需要執行一個OR查詢,因爲我也希望返回與下一年有關的數據,這些數據在我的數據庫中作爲一個字符串保存,這是我遇到的唯一問題,所以任何幫助都是讚賞。LINQ to SQL在字符串上執行或操作

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(); 
+0

「10/11」對我來說更像是一個日期而不是一年。 :) – 2010-01-19 10:29:22

+0

它看起來像「年」實際上不是一年 - 我猜這是一個「學年」,因爲它跨越兩個日曆年。 – 2010-01-19 10:39:09

+0

是的,它指的是一個學年,對不起。 – manemawanna 2010-01-19 11:07:16

回答

5

將您的查詢重寫爲where c.Year == "10/11" || c.Year == "11/12"

+0

謝謝,我曾試過這個,但它是在說運營商'||'不能應用於'bool'類型和'string'類型的操作數。但現在它的工作非常感謝。 – manemawanna 2010-01-19 11:06:33

1

如果你希望能夠動態地選擇年,那麼你可以做這樣的事情

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

,然後更改where

where years.Contains(c.Year) 
1

這是一個基本的語法錯誤 - 在C#不能說:

「哪裏是2010年或2011年」。

你不得不說:

「凡年是2010年,或年是2011」

所以你重寫這個:

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

,因爲這:

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