2013-07-16 13 views
-2

linq如何得到下面的結果?如何在linq中使用不同的非密鑰字段

key salesID prodname 
1 2566  a 
2 2566  b 
3 3647  c 
4 3012  d 

結果

salesID prodname 
    2566  b 
    3647  c 
    3012  d 

我想清楚所有重複salesID,我用這個代碼,但不工作

var n = (from p in context.ArefSms where p.Stautos != true select p).Distinct().OrderBy(x => x.SalesID).ToList(); 
+0

同樣,說「不工作」並沒有告訴我們發生了什麼事情。你*已*開始提供更多信息。請閱讀http://tinyurl.com/so-hints - 目前我們無法爲您提供幫助。 –

+0

我有這個查詢的所有記錄 –

+0

好吧,當我在我的答案中使用「GroupBy」方法時發生了什麼?獲取有關此問題的信息就像拔牙:( –

回答

1

最簡單的方法可能是使用GroupBy

var result = context.MyTable 
        .GroupBy(x => x.Field1) 
        .Select(g => new { Field1 = g.Key, 
             Field2 = g.First().Field2 }); 

這可能會給出「a」或者它可能給出「Field2」的值「b」......您還沒有明確說明是否重要,或基本上應該如何處理重複值Field1

編輯:所以你的真實性質,我懷疑你想:

var query = context.ArefSms 
        .Where(p => !p.Stautos) 
        .GroupBy(p => p.SalesID) 
        .Select(g => new { SalesID = g.Key, 
             ProdName = g.First().ProdName }) 
        .OrderBy(x => x.SalesID); 
+0

A或B不是那麼重要,我測試您的查詢不起作用 –

+0

@ user2304094:「不工作」是* * *如果我們能夠幫助你,你需要提供更多信息...... –

+0

這是我真正的查詢(從p中的context.ArefSms其中p.Stautos!= true select p ).OrderBy(x => x.SalesID).Distinct()。ToList(); –

相關問題