我有一个带有sortOrder列的数据库表。我将此列表显示给用户,他们使用jquery来求助列表,然后将其保存回服务器。
重新排序列表后,我按照该数据库表中所有ID的正确顺序获取一个新列表。
我需要一种很好的方法来将这种新的排序顺序更新到数据库。我想要的是根据我从用户那里得到的ID列表,使用自定义排序顺序查询数据库。然后我可以单步执行该列表并从0开始增加排序顺序。
VB中代码的加分点,虽然C#也很好。
谢谢!
答案 0 :(得分:0)
除非在数据表中有排序顺序字段(或与将原始表的字段存储为FK的排序顺序表的关联),否则无法在数据库中存储排序顺序。如果您有此字段,则在您的linq查询中执行OrderBy(x=>x.SortOrder)
所以你有数据库记录预测
public class ObjectFromDb{
int Id{get;set;}
int SortOrder{get;set;}
}
获得IQueryable<ObjectFromDb> queryable
和int[] newSortOrder
后,请执行以下操作:
var oldSortedList = queryable.OrderBy(x=>x.SortOrder).ToList()
foreach(var i=0;i<oldSortedList.Count;i++;){
oldSortedList[i].SortOrder = newSortOrder[i];
}
dataContext.SubmitChanges();