首先,我不确定我是否在问一些愚蠢的事情,所以在开始之前道歉。创建一个分组几个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