dotConnect throws an error on an Query like this (Oracle 12):
Code: Select all
dbContext.Class1
.Where(c1 =>
c1.ClassTwos
.Where(c2 => !c2.IsDeleted)
.SelectMany(c2 => c2.ClassThrees)
.Where(c3 =>
!c3.IsDeleted &&
!c3.ClassFours
.Any(c4 =>
!c4.IsDeleted &&
c4.Class5Id != null &&
!c4.Class5.IsDeleted
)
)
.Select(c3 => c3.Class2.Class1Id)
.Contains(c1.Id)
)
.ToList();
'ORA-00920: invalid relational operator'
Generated SQL:
Code: Select all
SELECT "c1"."Id", "c1"."IsDeleted", "c1"."Name"
FROM "Class1" "c1"
WHERE "c1"."Id" IN (
SELECT "c2.ClassThrees.Class2"."Class1Id"
FROM "Class2" "c2"
INNER JOIN "Class3" "c2.ClassThrees" ON "c2"."Id" = "c2.ClassThrees"."Class2Id"
LEFT JOIN "Class2" "c2.ClassThrees.Class2" ON "c2.ClassThrees"."Class2Id" = "c2.ClassThrees.Class2"."Id"
WHERE (NOT ("c2"."IsDeleted") AND (NOT ("c2.ClassThrees"."IsDeleted") AND NOT EXISTS (
SELECT 1
FROM "Class4" "c4"
LEFT JOIN "Class5" "c4.Class5" ON "c4"."Class5Id" = "c4.Class5"."Id"
WHERE (((("c4"."IsDeleted" = 0) AND "c4"."Class5Id" IS NOT NULL) AND NOT ("c4.Class5"."IsDeleted")) = 1) AND "c2.ClassThrees"."Id" = "c4"."Class3Id"))) AND "c1"."Id" = "c2"."Class1Id"
)