gpt4 book ai didi

c# - Windows Mobile 7 - C# 将 SQL 转换为 Linq,删除表中除前 10 名以外的所有内容

转载 作者:行者123 更新时间:2023-11-30 21:07:29 27 4
gpt4 key购买 nike

我正在尝试使用 linq 在 c# 中为 Windows Mobile 7 创建一个查询,该查询将删除表中除前 10 个高分之外的所有内容。 Scores 表很简单,包含 highScore_ID (int)、highScore (int) 和 playerName (string)。

SQL:

DELETE FROM Scores
WHERE highscore_ID NOT IN (SELECT TOP 10 highScore FROM HighScore)

林克:

from c in context.Scores where !((from o in context.Scores select   
o.highScore).Take(10)).Contains(c.highscore_ID) select c;

我似乎在使用此 linq 查询时遇到错误,非常感谢任何建议。

最佳答案

首先,您的 SQL 是错误的。应该是这样的:

DELETE FROM HighScore
WHERE highscore_ID NOT IN (
SELECT TOP 10 highScore_ID
FROM HighScore
ORDER BY score DESC
)

您可以在 LINQ 中执行此操作,方法是首先选择适当的行,然后为每个对象调用 DeleteObject:

var query = context.Scores.OrderByDescending(x => x.HighScore).Skip(10);
foreach (var score in query) {
context.Scores.DeleteObject(score);
}
context.SaveChanges();

关于c# - Windows Mobile 7 - C# 将 SQL 转换为 Linq,删除表中除前 10 名以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375945/

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