我有一个名为UserPaymentHistory的实体,包含Id,UserId,Price,PaymentDate。 我需要获得具有最后PaymentDate的用户的那一行。
我可以这样查询:
var lastPaymentDate =
db.Repository<UserPayment>()
.Where(u => u.UserId == 1)
.Select(x => x.PaymentDate)
.Max();
然后:
var userPayment = db.Repository<UserPayment>()
.Where(u => u.UserId == request.UserId
&& u.PaymentDate == lastPaymentDate).Single();
有什么方法可以在一个查询中获得该记录? :)
答案 0 :(得分:6)
按PaymentDate按降序付款并选择第一个:
var userPayment = db.Repository<UserPayment>()
.Where(u => u.UserId == request.UserId)
.OrderByDescending(u => u.PaymentDate)
.FirstOrDefault();