使用实体框架6更改表中的排序顺序字段

时间:2015-12-01 21:59:41

标签: asp.net-mvc entity-framework-6

我有一个包含三个字段的表:Id,location,sortorder。

Id      location   sortorder
--      --------   ---------
1       a          1
2       b          2
3       c          3
4       d          4 

我希望用户能够修改表格中项目的排序顺序。我正在使用EF写入数据库,有没有办法修改表上的排序顺序而不必加载对数据库的调用。

如果我将项目从底部移到列表顶部,我需要更新该新行下面的所有行,以便按顺序移动它们。如果可能的话,我想避免对数据库进行 n 更新,并尽可能少地进行更新。

这可能吗?

1 个答案:

答案 0 :(得分:0)

我相信Gert建议使用浮动排序顺序可能是最好的选择。 Drupal使用菜单项的权重用于相同的目的,但以100或1000的增量插入,以便您可以在事物之间进行切换。我认为它也可以运行一个cron作业来重新排序,所以你不会在更高效的存储数据类型中耗尽数字,但这听起来像是我在中学的BASIC日子里的延续,你必须在那里做行号。

另外,我打赌它实际上并不像运行n更新一样糟糕,因为它反而做了一个影响n行的更新。是的,在一天结束时它必须改变n行,但这是在数据库方面,所以可以实现大量的效率来加速它。