【发布时间】:2018-08-16 07:06:19
【问题描述】:
环境:带有 EF(数据库优先,可控制数据库设计)和 Sql Server 的 ASP.NET MVC 应用程序。
我有很多具有用户生成属性的实体。我需要一种方法让用户能够指定这些元素的顺序。
稍微详细一点:用户可以创建一个“模板”,然后他们可以向其中添加“属性”。这些“属性”需要订购。还有 >= 4 种其他不同的实体类型也需要用户指定的排序。
我对此的前端方面没有问题,但我想知道在 sql server 中保持元素顺序的最佳方法是什么。
对我来说显而易见的解决方案是给每个实体一个“顺序”列(或另一个非关键字名称),并在重新排序时(例如,将元素 #4 移动到 #2)更新所有受影响的实体。
这是解决这个问题的最好方法吗?
【问题讨论】:
-
是的,这是一个好方法。您可以将“attr desc”保存在一列中,或者将 order 属性和方向保存在单独的列中。在查询中,您包含此保存的排序
-
我也喜欢下面的答案。但是请不要将列命名为“Order”,它是 sql server 中的关键字。如果您使用关键字作为列名,则会在尝试编写查询时产生所有类型的语法挫折。
-
我相信这是个好方法。
-
@user7396598 哈,谢谢你的提醒。我将其更改为
SortOrder以防止给未来的读者带来潜在的麻烦:)
标签: c# sql-server entity-framework ef-database-first