2017-01-28 36 views
0

表的設計來完成:如何「按組」使用C#的LINQ實現它

Column1(Primary key) | Column2(Primary key) | Column3 | Column4 
---------------------------------------------------------------- 
1      s      2   user1 
1      d      3   user2 
1      s      2   user1 

在C#(LINQ),怎麼能「按組」的列1 & COLUMN2做,這樣我可以得到沒有重複的行和列3 & column4數據?

例:

Column1(Primary key) | Column2(Primary key) | Column3 | Column4 
---------------------------------------------------------------- 
1      s      2   user1 
1      d      3   user2 
+0

初始表格設計無效。 PK中的數據必須是唯一的,而第一行和第三行在您的示例中是重複的。由PK分組是不必要的,因爲它們將再次產生原始數據,因爲它們是獨特的。 – Alejandro

+0

@Alejandro實際上在這種情況下,column1和column2結合起來作爲PK ...這是DataTable在C#結束時需要發送到DB將重複的地方。因此,您可以假設,第二個表是實際的表在分貝...這就是爲什麼我需要'由'組' – Satty

回答

0

正如亞歷杭德羅指出,在主鍵分組不會給你任何好處,因爲所有的功能鍵爲默認唯一的,這樣所有的結果它去

忽略它們是否是主鍵,可以使用類似下面的方式按多列分組

from row in Table 
    group row by new 
    { 
     row.ColumnA, 
     row.ColumnB, 
     ... 
     ... 
    } into gcs 
    select new { 
     ColumnA = gcs.Key.ColumnA, 
     ColumnB = gcs.Key.ColumnB, 
     ... 
     ... 
    }; 
+0

這是我早些時候嘗試過,但是我需要將所有列放在group by子句中嗎? – Satty

+0

如果您的數據是您在上面發佈的性質,那麼請嘗試 –