.net - 自定义 Linq to Sql 查询中的 ExecuteScalar() 模拟

标签 .net sql sql-server linq-to-sql

我需要执行一个我无法使用常规 L2S 执行的自定义 sql 查询,这意味着:

select [row_number] from (select row_number() over (order by CreatedOn desc, ID desc) as [row_number], ID from MyTable) as T1 where ID = {0}

所以我在努力
var r = db.ExecuteQuery<int>(q, id).Single();

但这不起作用(获取 System.InvalidCastException: Specified cast is not valid)。有什么建议?

最佳答案

将您的代码更改为:

var r = db.ExecuteQuery<long>(q, id).Single();

通过从 System.Int32 更改返回类型( int ) 到 System.Int64 ( long )。

T-SQL 函数 ROW_NUMBER 返回类型是 bigint ,不是 int正如你所料。

关于.net - 自定义 Linq to Sql 查询中的 ExecuteScalar() 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379385/

相关文章:

sql-server - Powershell 将 SQL Server 数据库恢复到新数据库

sql-server - SQL Server CDC - Debezium Kafka 特定日期的快照

c++ - 在 ARM 平板电脑上编程

c# - 在C#中不使用反射无异常获取当前方法和类

c# - 将 .NET Core 与旧版 .NET 框架 dll 一起使用

python pandas to_sql 与 sqlalchemy : how to speed up exporting to MS SQL?

sql-server - SQL Server 中存储 IP 地址的数据类型

c# - P/调用第三方弹窗

sql - 涉及三个表的复杂更新

php - MySQL DISTINCT/GROUP BY 与 MAX()