【问题标题】:Translate an SQL query into LINQ将 SQL 查询转换为 LINQ
【发布时间】:2020-07-19 14:18:12
【问题描述】:

我正在努力将以下 SQL 查询转换为 LINQ。 结果列在数据库中的类型 (varchar) 中,我想使用 LINQ 将其转换为 float/double

SELECT TOP 10 CAST(Outcome AS float) AS Max_Outcomes
FROM GameState
where GameId = 1000
ORDER BY Max_Outcomes DESC

非常感谢!

【问题讨论】:

标签: c# sql sql-server entity-framework linq


【解决方案1】:

类似这样的:

var result = _yourDbContext.GameState
             .Where(c => c.GameId == 1000).AsEnumerable()
             .Select(c => new { Max_Outcomes = (float)c.Outcome })
             .OrderByDescending(c=> c.Max_Outcomes).Take(10).Tolist()

【讨论】:

  • 您不能进行强制转换,因为实体框架不会理解它。在这种情况下也不存在 max_outcomes 。这就是我遇到问题的地方。
  • @Artavazd 查看我的更新答案。关于 EF 了解演员表,您可以使用AsEnumerable(),对于Max_Outcomes,您可以使用匿名类型,如我更新的答案。
  • 啊,选完就可以下单了。它就是这样工作的。
猜你喜欢
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 2017-02-23
  • 1970-01-01
  • 2016-03-08
相关资源
最近更新 更多