【问题标题】:Entity Framework CASE statement with ORDER BY带有 ORDER BY 的实体框架 CASE 语句
【发布时间】:2022-01-13 15:56:13
【问题描述】:

有人可以帮我将以下 SQL 转换为 linq 查询吗?

SELECT TOP 1000 CountryID
,CoutryName
,ISO2
FROM dbo.Countries
ORDER BY CASE WHEN ISO2 IN('GB','LU','CA','ES')
THEN 0 ELSE 1 END, CountryID 

【问题讨论】:

  • 缺少END..
  • 谢谢@jarlh。添加了缺失的代码。
  • @RedDevil 也许这可以帮助github.com/ganeshkamath89/SQL2LINQConvertor
  • 你有什么尝试?你的课?
  • @ErgestBasha,糟糕的项目 ;) 看起来它开始播放并且没有完成主要部分。 Linqer 比较成熟,但看起来也死了。可能是因为 EF 不是 SQL 替代品,有很多限制。

标签: sql entity-framework linq


【解决方案1】:

OrderBy by CASE 可以用三元运算符? :表示

var names = new [] {"GB", "LU", "CA", "ES"};
...
query = query.OrderBy(x => names.Contains(x.ISO2) ? 0 : 1);

【讨论】:

  • 感谢@Svyatoslav Danyliv,这正是我想要的。
  • 请注意,如果我不多次重读问题,尤其是标题,则此答案将永远不会出现。所以不要尊重只包含 SQL 而不显示您的翻译尝试的问题。
猜你喜欢
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多