2014-01-16 203 views
-2

下面的代碼將選擇表中的所有行,但我只想選擇傳入方法的行的id。我已經嘗試了多種方式,現在開始新鮮,看看我能否得到它的工作。任何幫助表示讚賞。使用LINQ的WHERE子句

這裏是我的代碼:

[WebMethod] 
public static string getProjectByID(int id) 
{ 
    using (dbPSREntities4 myEntities = new dbPSREntities4()) 
    { 
     var thisProject = myEntities.tbProjects.ToList(); 

     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     var json = serializer.Serialize(thisProject); 

     return json; 
    } 
} 

回答

5

你想使用Where方法來過濾數據:

var thisProject = myEntities.tbProjects.Where(x => x.yourIdColumn == id).ToList(); 
+1

的SingleOrDefault很可能是一個更好的方法,在這裏使用 – Joe

+1

假設ID是唯一的,這你會覺得這是... –

3

where子句是相當簡單的在這裏。您只需使用lambda表達式來指定您匹配的條件。如果你不熟悉他們更多的信息可以在這裏找到http://msdn.microsoft.com/en-us/library/bb397687.aspx的基本知識是你有一個變量名,其次是=>在右邊你可以做你想要的變量,我覺得最簡單的想法是像foreach那樣工作,其中聲明的變量名稱是迭代變量(列表中的項目)。

var thisProject = myEntities.tbProjects.Where(x => x.Id == id).ToList(); 
+0

我認爲,如果你遵循的格式也可能是更清晰的OP他的一點代碼,並使參數匹配他所指的'id'。只是我的想法... –

+0

@ jimtollan是的,這是一個簡單的改變。他的代碼實際上並沒有太緊密,只是拉了一條線,並添加了一個地方。 – evanmcdonnal

+0

+1爲反應參與:-)。再加上一個很好的小解釋... –