我試圖更新我的數據庫中的多個記錄,我有下面的代碼,我正在使用它來更新1項。
如何更新多個?更新數據庫中的多條記錄
abcProduct productUpdate = dc.abcProducts.Single(p => p.feedSubmitId == submissionId);
productUpdate.prodPublished = '1';
我試圖更新我的數據庫中的多個記錄,我有下面的代碼,我正在使用它來更新1項。
如何更新多個?更新數據庫中的多條記錄
abcProduct productUpdate = dc.abcProducts.Single(p => p.feedSubmitId == submissionId);
productUpdate.prodPublished = '1';
試試這個
dc.abcProducts.Where(p => p.feedSubmitId == submissionId).ToList().ForEach(x=>x.prodPublished = '1');
var products = dc.abcProducts.Where(p => p.feedSubmitId == submissionId);
foreach(var product in products)
{
product.prodPublished = '1';
}
你也可以在你的數據庫編寫的存儲過程。
CREATE PROCEDURE SetProdPublished
@submissionId int
@prodPublished int
AS
UPDATE AbcProducts SET prodPublished = @prodPublished
WHERE feedSubmitId = @submissionId
然後您將該存儲過程拖到您的DBML中。然後您可以調用該存儲過程。
dataContext.SetProdPublished(someSubmissionId, 1);
如果要更新超過幾行更多,這將是比代碼更新他們在一個循環更快,更快,如果你更新很多行。
使用'forach'或任何其他循環結構? – nemesv 2012-07-11 12:15:35
在linq2sql中完成它的唯一方法是遍歷這些項目。如果你想要基於集合的更新,你需要使用SQL。 – 2012-07-11 12:27:37