2014-05-06 24 views
0

我有兩組數據,我需要從另一組中更新一組數據。我有大量的數據,所以需要找到一個有效的方法來做到這一點。需要更新Linq中設置數據的示例

public class Data 
{ 
    int id {get; set;} 
    string comment {get; set;} 
} 
public class DataComments 
{ 
    int id {get; set;} 
    string comment {get; set;} 
} 

我有2個集合,其中一個Data和另一個DataComments。例如名單。如果存在,我需要使用列表集合中的註釋更新類「數據」。完成後,如果DataComments中存在交集,則需要Data中的所有行並更新其註釋屬性。底線我只需要更新一組數據,如果有任何發現。我認爲這個交點可能是一種方法。

+1

LinQ中的Q表示查詢,所以LinQ可能會有幫助,但不是完整的解決方案。插入或更新不在LinQ的範圍內。 – nvoigt

+0

好吧,我會問另一種方式。我怎樣才能發出一個新名單? –

回答

0

您可以通過調用query2.ToList()query2對象轉換爲列表,並且它會返回您創建的匿名類型的列表。如果您想在代碼的其他地方使用它,您需要一個可以在查詢中創建的新POCO對象,並返回該對象的列表。

所以,在你的情況下,您的查詢應該是這樣的:

var query2 = modelRows.GroupJoin(commentRows, 
    gridRow => gridRow.NSN, commentRow => commentRow.NSN, 
    (gridRow, cg) => new ModelRowsGroupObject { 
        NSN = gridRow.NSN, 
        CommentGroup = cg, 
        Desc = gridRow.Desc 

       }).ToList(); 

別的地方在你的代碼,定義一個ModelRowsGroupObject作爲一個普通的舊CLR對象,你是好去。