如何在C#实体框架中重新排序ID(从1到n)

本文关键字:排序 ID 新排序 实体 框架 | 更新日期: 2023-09-27 18:19:55

我对C#MVC还很陌生,所以我所问的可能是不好的做法,但有没有办法(或者应该尝试)对集合中对象的Id进行重新排序,以便第一个元素始终保持Id为1。如果它被删除并被第二个元素替换,那么这个元素应该得到一个新的Id 1。

我正在使用Id对页面上显示的元素进行排序,我想我可以创建一个新的属性来达到这个目的,但我想知道重新排序实际的Id是否是个好主意。

我使用的是Code First,现在我让实体自动管理Id。

欢迎就此事提出任何意见!

提前感谢!

如何在C#实体框架中重新排序ID(从1到n)

是的,你的假设是对的。首先,您不应该使用ID进行排序。ID的目的是识别记录,不应将其用于其他目的。更重要的是,除非在非常特殊的情况下,否则更改ID是一个非常糟糕的主意。修改ID时,所有具有引用修改ID的外部ID的相关记录也需要更改。

您也正确地认为,最好的方法是添加另一个名为"排序顺序"的列,并将其用于排序。我一直在这样做,大多数需要由管理员决定排序的表都有一个名为"SortingOrder"(或SQL中的"sorting_order")的列。