2017-06-12 111 views
-2

我有兩個表(一個是任務,另一個是參與者)。我使用下面的代碼linq過濾問題

public ActionResult Index(string subjectId) // filter participants based on the subject that they belong to 
{ 

    var participants = db.Participant.Where(x => x.SubjectsID.ToString().Contains(subjectId)).ToList(); 

    return View(participants); 
} 

下面的代碼只是返回一個空的列表

您的幫助將不勝感激。

+0

首先解釋什麼是你真正的問題,而不是投票給所有答案。 –

+0

我認爲「SubjectsID」和「subjectId」是相同的類型,所以你不需要SubjectsID.ToString()。只需執行以下「x.SubjectsID == subjectId」 –

+0

@JasmineScott Participant.SubjectsID的類型是什麼? – Atesh052

回答

1
 {    
      var participants = db.Participant.Where(x => x.SubjectsID.ToLower().Contains(subjectId.ToLower())).ToList();    
      return View(participants); 
     } 

這會給所有的記錄存在與必修科目

+0

我試過這個,現在給我看一個空白列表 –

+0

如果沒有包含* subjectId的條目,那麼應該怎麼做* equals * it? – HimBromBeere

+0

@HimBromBeere你可以請提供一個LINQ爲這 –

0

我認爲你應該使用

var participants = db.Participant.Where(x => x.SubjectsID == subjectId).ToList(); 

,而不是

var participants = db.Participant.Where(x => x.SubjectsID.ToString().Contains(subjectId)).ToList(); 
+0

如果沒有包含* subjectId的條目,那麼應該如何得到* equals * it? – HimBromBeere

+0

我也試過這個,但是顯示一個空白列表 –

+0

@JasmineScott Participant.SubjectsID是什麼類型? – Atesh052

0

只是等於運營商檢查,

public ActionResult Index(string subjectId) 
{ 
    var participants = db.Participant.Where(x => 
        x.SubjectsID.ToString() == subjectId).ToList(); 
    return View(participants); 
} 

希望它有幫助:)