我的sql代码如下,我正在尝试将其转换为linq。我对如何做row_number()(分区部分)感到困惑。如果我能得到一些指导或帮助,请谢谢。
with summary AS
(select * from
(select p.loan_guid,
p.TransactionDate,
p.balanceoutstanding,
row_number() over (partition by p.loan_guid
order By linenumber desc) as rk
from (select * from transactions1
where transactiondate <= @EndDate )as p )
as S where S.rk = 1)
答案 0 :(得分:0)
我无法找到明确的答案,但我的猜测是Linq不支持分析/窗口功能。如果您正在使用Entity Framework,那么您始终可以指定一个类型,执行原始查询,EF将为您映射和跟踪结果。这是一个例子:
using(var ctx = new MyContext){
var myObjects = ctx.Products.SqlQuery("<Your Query>").ToList();
}
结果将是Product类型的对象列表。
这会在SQL数据库的应用程序中创建一个依赖项,但我希望有一个干净的SQL查询,我可以在以后重构,然后在您的代码中进行一次巨大的Linq查询。