2012-07-25 111 views
-1

下面的linq查詢顯示我所有的結果集,而不是用where子句過濾premalink.PremalinkID == id ???linq .ToList()返回所有記錄,忽略where子句?

lstpremalink = dalpremalink.GetUserNewsFeed(UserID); 
var premalinkid = (from p in lstpremalink select p.PremalinkID).Distinct(); 

    foreach (Int64 id in premalinkid) 
    { 
    lstprema = (from premalinktags in lstpremalink 
        where premalinktags.PremalinkID == id 
        select premalinktags).ToList(); 
} 

lstprema顯示所有的結果集以下

enter image description here

+0

你確定這個編譯呢? – Thousand 2012-07-25 19:39:47

回答

3
lstprema = (from premalinktags in lstpremalink 
      where premalink.PremalinkID == id select premalinktags).ToList(); 

你迭代通過premalinktags但你where子句不包含該變量!應該不是premalinktags.PremalinkID == id而是?

0
lstpremalink = dalpremalink.GetUserNewsFeed(UserID); 

var premalinkid = (from p in lstpremalink 
        where p.PremalinkID == lstpremaLink.ID 
        select p).Distinct(); 

您必須使用WHERE條件

+1

'(from p in lstpremalink where p.PremalinkID == lstpremaLink.ID select p.PremalinkID)'是不是這樣說:「給我所有的地方'4 == 4',然後返回'4'..? – Thousand 2012-07-25 19:36:40

+0

你是對的,我修好了,看起來像他想要的東西:) – 2012-07-25 19:48:46

+0

哈哈耶大衛約翰遜我剛開始學習LINQ兩個小時前:)我正在取得進展,但我會說對不起所有的大師我要冒犯我的問題 – 2012-07-25 20:31:36