我们需要检索已排序的项目列表。排序顺序将与项目指南的任意列表相关。即它可能是1, 2, 3, 4以及3, 7, 2, 4。
我们没有使用 LINQ-to-SQL,也没有使用存储过程。
我建议我们按照 SQL Server 提供的顺序获取列表,并在 C# 代码中使用 LINQ 对其进行排序。
另一种方法是创建一个这样的字符串(按照这个提示)。
select * from publishers
Order by (CASE City
WHEN 'Paris' THEN 1
WHEN 'Chicago' THEN 2
WHEN 'Boston' THEN 3
WHEN 'New York' THEN 4
ELSE 100 END) ASC, City DESC
我必须承认这种方法有一定的简洁性,但我更喜欢在 C# 中使用数据操作。我无法对另一种方法提出很好的打击,所以我不得不承认这是一种有效的方法。
这里有什么缺点?(当然,除了明显的注射,这对我们来说不是问题。幸运的是,我们不必担心安全问题。)