gpt4 book ai didi

c# - 实现 "ReOrderable Collection"并将其保存到数据库的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:38 24 4
gpt4 key购买 nike

我的领域对象:

public class MyDomainObject
{
public Guid Id { get; set; }
public string Name { get; set; }
public int DisplayOrder { get; set; }
}

假设样本数据:

var list = new List<MyDomainObject>()
{
new MyDomainObject {Name = "Element1", DisplayOrder = 0},
new MyDomainObject {Name = "Element2", DisplayOrder = 1},
new MyDomainObject {Name = "Element3", DisplayOrder = 2},
new MyDomainObject {Name = "Element4", DisplayOrder = 3},
};

现在我将“Element3”的 DisplayOrder 从 2 更改为 1。我的列表应该如下所示:

  • 元素 1(显示顺序 = 0)
  • 元素 3(显示顺序 = 1)
  • 元素 2(显示顺序 = 2)
  • 元素 4(显示顺序 = 3)

现在我删除“Element3”

  • 元素 1(显示顺序 = 0)
  • 元素 2(显示顺序 = 1)
  • 元素 4(显示顺序 = 2)

那么将这种机制持久化到数据库的最佳方式是什么?

基本上我需要一个“ReOrderableCollection”,它将使用 OrderBy“DisplayOrder”从数据库中填充,其中 Collection Index 匹配“DisplayOrder”,并通过从 Collection Index 分配 DisplayOrder 来保留项目。

最佳答案

我在这里回答了一个关于重新排序的先前/类似问题: How to design table that can be re-sequenced?

这可以很好地重新保存订单,没有间隙。根据列表的大小,重新保存订单可能是一个完全可行的选择,对于长列表,Mark Byers 的想法看起来很不错。

关于c# - 实现 "ReOrderable Collection"并将其保存到数据库的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1995770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com