c# - 如何使用 LINQ 获取最新号码
问题描述
这里列出了 db 表中客户的付款历史记录
CustomerId PayId FeePaid
xx-yy-zz 37 0
xx-yy-zz 32 0
xx-yy-zz 31 30.00
xx-yy-zz 28 0
xx-yy-zz 26 0
xx-yy-zz 18 35.99
xx-yy-zz 17 0
xx-yy-zz 16 0
xx-yy-zz 9 12.00
xx-yy-zz 6 0
PaymentId 列自动递增。如何获得该客户的最后一笔付款,即数字 $30.00?我的项目是 Asp.net API,所以我需要使用 LINQ 来获取号码。
解决方案
如果我们假设我们忽略零,并且PayId
是单调递增的,那么大概:
作为 LINQ:
var val = ctx.SomeTable
.Where(x => x.CustomerId == customerId && x.FeePaid != 0)
.OrderByDescending(x => x.PayId)
.Select(x => x.FeePaid)
.First();
或作为 SQL:
select top 1 FeePaid
from SomeTable
where CustomerId = @customerId
and FeePaid <> 0
order by PayId desc
推荐阅读
- arrays - 如何使用表格视图获取数组中所选值的 Int?
- javascript - CodeIgniter:我无法从 html -> ajax -> php 的 textarea 中获取值
- git - 在本地使用 Git 的基础知识
- javascript - ReactJS - MaskedInput 在处理邮政编码屏蔽输入时添加了额外的空格
- angularjs - 离子框架和 AngularJS
- typescript - 如何将类型添加到 webpack 外部
- python - Pyqt5和线程 - 从外部类(方法)传递值不起作用 - 属性错误
- javascript - CORS 策略已阻止来自原点“null”:跨源请求
- variables - 空手道 - 从另一个特征文件中的响应中获取字段的值
- java - 从必然同步的方法调用异步方法(Vert.x,Java)