2009-02-22 48 views
3

我使用JQuery.Sortable()函数来创建项目,像这样向数据库提交序列化的JQuery可排序结果的最佳方式是什么?

<script type="text/javascript"> 
    // When the document is ready set up our sortable with it's inherant function(s) 
    $(document).ready(function() { 
     $("#goal-list").sortable({ 
      handle: '.handle', 
      placeholder: 'ui-state-highlight', 
      update: function() { 
       var order = $('#goal-list').sortable('serialize'); 
       $("#info").load("/goals/process?" + order); 
      } 
     }); 
    }); 
</script> 

该回来的结果重新排序的列表是一个逗号分隔的ID的项目列表(即1,2,3, 4,5,6等)

我想知道什么是提交到相关项目表的sortorder列的最佳方式...我可以循环和更新每条记录,但我认为这是数据库写入非常多,并且可能会造成潜在的瓶颈,特别是如果列表相当大。

我使用LINQ到SQL和ASP.NET MVC

回答

3

我建议你看看到延迟执行更多,如果您正在使用LINQ工作,SQL。这可能是一个常见的陷阱。特别是当使用关联时。

实际上可以将多个插入和更新组合在一起..直到在数据库上下文中调用SaveChanges或SubmitChanges之前,它们都不会写入数据库。

如果循环通过一组项目,并对其进行修改..然后调用的SaveChanges退出循环,群更新语句应一起进行批处理并发送至一个行程分贝以后。

+0

感谢那些做这个诀窍......我有时会忘记你可以在LINQ中做那种事情 – dswatik 2009-02-22 16:58:12

相关问题