3

我正在使用 JQuery.Sortable() 函数来创建一个可重新排序的项目列表,如下所示

 <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 等)

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

我正在使用 LINQ-to-SQL 和 ASP.NET MVC

4

1 回答 1

3

如果您正在使用 LINQ to SQL,我建议您更多地研究延迟执行。这可能是一个常见的陷阱。尤其是在使用关联时。

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

如果你遍历一组项目并修改它们..然后在退出循环后调用 SaveChanges ,这组更新语句应该一起批处理并一次发送到数据库..

于 2009-02-22T07:04:56.993 回答