1
我正在使用實體框架項目,我需要通過ID批量更新記錄。該ID(即特定表的主鍵)可在運行時,我想更新在下面的查詢像所有記錄:通過ID實體框架批量更新
UPDATE EntityTable
SET Column = @p0
WHERE EntityID IN '1,2,3,[...]'
我遇到的問題是,我身邊有60K的ID(在最壞的情況),我將需要處理,我們的數據庫軟件(SQL Server 2008中)無法處理這個問題:
查詢處理器用盡了內部資源,無法 生成查詢計劃。這是一件罕見的事情,只有在引用非常大的 數量的表或分區時纔會出現極其複雜的查詢或查詢。請簡化查詢。如果您 認爲您錯誤地收到了此消息,請聯繫客戶支持服務 以獲取更多信息。
通過谷歌搜索,我發現用老派DataTable
和SqlDataAdapter
電話的人做到這一點,但我想留下來,如果可能的實體框架,或在必要時原始SQL的精神內。有沒有辦法以合理有效的方式做到這一點?
我最終分成批次,將ID列表作爲CSV字符串傳遞給存儲過程。我不喜歡在查詢中解析,但事實證明這是一種非常乾淨的方式。 – Jake 2012-09-17 11:31:56