我在我的项目中使用entityframework。
我有3个表,这些表被导航了很多对很多关系。 这是我的图表。
我想选择所有最后批准状态= = 15的我的计数器ID。
我写了这样的查询;
var sayacOnayDurumlari =
db.CounterApproveStatus
.Where(x => x.ApproveStatusId == 15).OrderByDescending(x=>x.Id)
.GroupBy(x => x.CountersId)
.Select(e => e.FirstOrDefault());
但它需要我的旧记录ID == 15
答案 0 :(得分:0)
var son =
db.Counters.Where(
x => x.CounterApproveStatus.OrderByDescending(t => t.Id).FirstOrDefault().ApproveStatusId == 15)
.ToList();
我试过这样,我想我已经实现了。这是一个很好的查询吗?
答案 1 :(得分:0)
您首先需要组,然后查找该组中的最新ID是否具有所需的statusId。 以下语法可能不完全正确,但你可以理解。
var sayacOnayDurumlari =
db.CounterApproveStatus
.GroupBy(x => x.CountersId)
.Select(g => new {
CountersId = g.Key,
LatestRecord = g.OrderByDescending(x=> x.Id)
.FirstOrDefault()
})
.Where(g=> g.LatestRecord.ApproveStatusId == 15)
.Select(g => g.CountersId).ToList();