0
Ich habe diese Linq: -ORA-00904 ungültige Kennung auf generierte Abfrage von 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)
};
Die erzeugte Abfrage enthält:
WHERE ("Extent1"."REP_ID" = "Extent2"."REP_ID")
Ich erhalte die Nachricht
ORA-00904: "Ausdehnung1". "REP_ID".
Beide Spalten existieren und haben den gleichen Datentyp. Was kann ich für dieses Problem tun?
nicht klar, ohne die all Oracle-Abfrage (auch wenn es groß ist). Übrigens, warum benutzt du nicht 'r.Hist.Any()' und 'r.Hist.Count()> 1' anstelle von take/skip/any für status1 und status2? –
Ich habe eine Klausel, die ich vergessen habe, im Any() -Satz zu schreiben, so: Any (x => x.Status == 2); –
@LennonFerreira Vielleicht könnten Sie die 'Hist'-Elemente in der Abfrage zurückgeben und dann diese Logik in Linq-to-Objects ausführen. – juharr