2012-07-11 64 views
1

我試圖更新我的數據庫中的多個記錄,我有下面的代碼,我正在使用它來更新1項。
如何更新多個?更新數據庫中的多條記錄

abcProduct productUpdate = dc.abcProducts.Single(p => p.feedSubmitId == submissionId); 
productUpdate.prodPublished = '1'; 
+0

使用'forach'或任何其他循環結構? – nemesv 2012-07-11 12:15:35

+0

在linq2sql中完成它的唯一方法是遍歷這些項目。如果你想要基於集合的更新,你需要使用SQL。 – 2012-07-11 12:27:37

回答

0

試試這個

dc.abcProducts.Where(p => p.feedSubmitId == submissionId).ToList().ForEach(x=>x.prodPublished = '1'); 
0
var products = dc.abcProducts.Where(p => p.feedSubmitId == submissionId); 
foreach(var product in products) 
{ 
    product.prodPublished = '1'; 
} 
0

你也可以在你的數據庫編寫的存儲過程。

CREATE PROCEDURE SetProdPublished 
    @submissionId int 
    @prodPublished int 
AS 
    UPDATE AbcProducts SET prodPublished = @prodPublished 
    WHERE feedSubmitId = @submissionId 

然後您將該存儲過程拖到您的DBML中。然後您可以調用該存儲過程。

dataContext.SetProdPublished(someSubmissionId, 1); 

如果要更新超過幾行更多,這將是比代碼更新他們在一個循環更快,更快,如果你更新很多行。