ORA-00904在从linq生成的查询中无效的标识符

本文关键字:查询 无效 标识符 在从 linq ORA-00904 | 更新日期: 2023-09-27 18:06:22

我有这个linq:-

var query = from r in Ctx.Reg
            select new
            {
                IdReg = r.Id,
                ...
                Status1 = r.Hist.OrderByDescending(o => o.Id).Take(1).Any(x=> x.Status == 2),
                Status2 = r.Hist.OrderByDescending(o => o.Id).Skip(1).Take(1).Any(x=> x.Status == 5)
            };
生成的查询包含:
WHERE ("Extent1"."REP_ID" = "Extent2"."REP_ID")

我正在接收消息

ora - 00904:"Extent1"。"REP_ID"。

两个列都存在并且具有相同的数据类型。我该怎么做呢?

ORA-00904在从linq生成的查询中无效的标识符

我不知道确切的原因,但它工作:

var query = from r in Ctx.Reg
            select new
            {
                IdReg = r.Id,
                ...
                Status1 = Ctx.RegHist.OrderByDescending(o => o.Id).Any(x=> x.RegId == r.Id && x.Status == 2),
                Status2 = Ctx.RegHist.OrderByDescending(o => o.Id).Skip(1).Any(x=> x.RegId == r.Id && x.Status == 5)
            };