首先,我不確定我是否在問一些愚蠢的事情,所以在開始之前道歉。創建一個分組幾個I/O任務的任務
我有節約使用一個SqlCommand異步在DB實體的集合的方法,並返回表示異步操作的任務,到目前爲止,它的作品好。基本上它會爲每個實體生成一個SQL命令和一堆參數,並將它們全部添加到一個SqlCommand實例中(參數被編號)
但是,如果我嘗試插入很多實體,那麼當參數計數達到2100 ,SQL操作失敗,因爲這是限制。然後,我想批量分割實體集合,並按順序執行它們,然後返回一個Task,直到所有子任務完成纔會完成。 (可能是最後一個)
每個孩子的任務,將獲得的Int32說有多少行已經改變,最後的任務必須返回所有這些的總和。所以所有的任務都是Task。如果一個失敗,所有這些都必須「回滾」,所以它們必須共享連接和事務對象。
此外,我想確保我正確使用Task和SqlCommand的I/O完成端口,並且沒有線程在SQL Server上的操作完成時等待/複製,因爲此「保存「操作是從ASP.NET MVC中的異步控制器調用的。
這裏的正確方法是什麼?
問候。
非常感謝!非常說教。 – vtortola 2012-04-27 13:52:04