gpt4 book ai didi

c# - 在 SQL 语句中排序之前总是首选 LINQ 吗?

转载 作者:行者123 更新时间:2023-11-30 21:00:35 24 4
gpt4 key购买 nike

我们需要检索一个排序的项目列表。排序顺序与项目 guid 的任意列表相关。 IE。它可能是 1、2、3、4 以及 3、7、2、4

我们既不使用 LINQ-to-SQL 也不使用存储过程。

我建议我们按照 SQL Server 提供的顺序获取列表,并在 C# 代码中使用 LINQ 对其进行排序。

另一种方法是创建一个像这样的字符串(在 this tip 之后)。

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# 中进行数据操作。我无法想出一个很好的击落另一种方法的方法,所以我不得不承认这是一个可行的方法。

这里有什么缺点? (当然,明显的注入(inject)除外,这对我们来说不是问题。幸运的是,我们无需担心安全问题。)

最佳答案

我个人会选择以数据库为中心的解决方案。如果我需要对数据进行排序或分页,我几乎总是尝试在数据库服务器端进行(通常使用 SQL 和/或 StoredProcedures)。

好处显而易见:

  1. 服务器通常是您的应用系统中最强大的机器,所以让我们努力工作吧。还因为它经过调整可以为我们完成艰苦的工作。

  2. 在服务器上准备一次数据,有时这意味着它也减少了它的大小(过滤或获取具体页面),因此传输到客户端的数据量大大减少,这对用户有好处更快的响应时间。

如果您一次获取所有内容(如您所提到的),至少,第一点仍然是您可以考虑的问题。

关于c# - 在 SQL 语句中排序之前总是首选 LINQ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808519/

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