我如何将重新排序数据库中项目的sql查询转换为linq?

问题描述 投票:0回答:1

我目前有一个表格,其中某项根据要排序的列具有新的顺序。 sql语句的目标是根据该排序列对表重新排序。 SQL命令当前可以使用,但是我有很多硬编码的字符串,我希望将其转换为linq,以便于测试。我有的SQL如下:

sql = string.Format(CultureInfo.InvariantCulture, "UPDATE x SET
x.[{1}] = x.[RowNum] FROM (SELECT [{1}], ROW_NUMBER() OVER (ORDER BY
t.[{1}] ASC, t.[Modified] DESC) AS RowNum FROM {0} t INNER JOIN
tableTwo i ON t.TableTwoId = i.Id INNER JOIN {4} p ON t.{4}Id
= p.Id WHERE i.{2} = {3} and {3} <> '' ", tableName, sortColumn, tableTwoColumn, "{0}", tableThreeName);

我熟悉基本的Linq,但是我不确定如何将ROW_NUMBER()和OVER之类的内容转换为linq。我将表名称更改为样本名称,以防不完美。任何帮助,将不胜感激!

c# sql entity-framework linq
1个回答
0
投票

Linq用于查询,而不是更新。您可以使用EF或其他框架来更新数据,但老实说,原始SQL最适合批量更新。

我会说,有一个基于现有数据的“排序”列(因此需要定期更新)似乎是多余的。为什么不只按选择查询中的该列排序数据?

© www.soinside.com 2019 - 2024. All rights reserved.