我需要执行一个我无法使用常规 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/