Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何正确地结合两个带条件的孙子表_C#_Oracle_Entity Framework_Entity Framework 4_Lambda - Fatal编程技术网

C# 如何正确地结合两个带条件的孙子表

C# 如何正确地结合两个带条件的孙子表,c#,oracle,entity-framework,entity-framework-4,lambda,C#,Oracle,Entity Framework,Entity Framework 4,Lambda,我有一个使用EF4.4映射的现有Oracle数据库。当我试图从两个大的子表中查询数据时。我得到一个错误如下所述。我认为问题出在lambda查询中,但不确定它出了什么问题 表格 X -XID -VAL A -AID BA -BID -AID CA -CID -AID BX -BXID -BID -XID CX -CXID -CID -XID 查询: var q = context.As.AsQueryable(); q = q.Where(o=>o.BAs.Any(p=&

我有一个使用EF4.4映射的现有Oracle数据库。当我试图从两个大的子表中查询数据时。我得到一个错误如下所述。我认为问题出在lambda查询中,但不确定它出了什么问题

表格

X
-XID
-VAL

A
-AID

BA
-BID
-AID

CA
-CID
-AID

BX
-BXID
-BID
-XID

CX
-CXID
-CID
-XID
查询:

var q = context.As.AsQueryable();
    q = q.Where(o=>o.BAs.Any(p=>p.BX.Any(t=>t.BXID==1)))
         .Union(
        q.Where(o=>o.CAs.Any(p=>p.CX.Any(t=>t.CXID==1))).AsQueryable<A>();
SELECT 
"Distinct1"."C1" AS "C1"
FROM ( SELECT DISTINCT 
    "UnionAll1"."AID" AS "C1",
    FROM  (SELECT 
        "Extent1"."AID" AS "AID"
        FROM "SCHEMA"."A" "Extent1"
        WHERE ( EXISTS (SELECT 
            1 AS "C1"
            FROM ( SELECT 
                "Extent2"."BID" AS "BID"
                FROM "SCHEMA"."BA" "Extent2"
                WHERE ("Extent1"."AID" = "Extent2"."AID")
            )  "Project1"
            WHERE ( EXISTS (SELECT 
                1 AS "C1"
                FROM "SCHEMA"."BX" "Extent3"
                WHERE (("Project1"."BID" = "Extent3"."BID") AND (1 = ( CAST(
"Extent3"."BXID" AS number(9,0)))))
            ))
        ))
    UNION ALL
        SELECT 
        "Extent4"."AID" AS "AID"
        FROM "SCHEMA"."A" "Extent4"
        WHERE ( EXISTS (SELECT 
            1 AS "C1"
            FROM ( SELECT 
                "Extent5"."CID" AS "CID"
                FROM "SCHEMA"."CA" "Extent5"
                WHERE ("Extent4"."AID" = "Extent5"."AID")
            )  "Project5"
            WHERE ( EXISTS (SELECT 
                1 AS "C1"
                FROM "SCHEMA"."CX" "Extent6"
                WHERE (("Project5"."CID" = "Extent6"."CID") AND (1 = ( CAST(
"Extent6"."CXID" AS number(9,0)))))
            ))
        ))) "UnionAll1"
)  "Distinct1"
ORA-00904: "Extent1"."AID": invalid identifier     
错误:

var q = context.As.AsQueryable();
    q = q.Where(o=>o.BAs.Any(p=>p.BX.Any(t=>t.BXID==1)))
         .Union(
        q.Where(o=>o.CAs.Any(p=>p.CX.Any(t=>t.CXID==1))).AsQueryable<A>();
SELECT 
"Distinct1"."C1" AS "C1"
FROM ( SELECT DISTINCT 
    "UnionAll1"."AID" AS "C1",
    FROM  (SELECT 
        "Extent1"."AID" AS "AID"
        FROM "SCHEMA"."A" "Extent1"
        WHERE ( EXISTS (SELECT 
            1 AS "C1"
            FROM ( SELECT 
                "Extent2"."BID" AS "BID"
                FROM "SCHEMA"."BA" "Extent2"
                WHERE ("Extent1"."AID" = "Extent2"."AID")
            )  "Project1"
            WHERE ( EXISTS (SELECT 
                1 AS "C1"
                FROM "SCHEMA"."BX" "Extent3"
                WHERE (("Project1"."BID" = "Extent3"."BID") AND (1 = ( CAST(
"Extent3"."BXID" AS number(9,0)))))
            ))
        ))
    UNION ALL
        SELECT 
        "Extent4"."AID" AS "AID"
        FROM "SCHEMA"."A" "Extent4"
        WHERE ( EXISTS (SELECT 
            1 AS "C1"
            FROM ( SELECT 
                "Extent5"."CID" AS "CID"
                FROM "SCHEMA"."CA" "Extent5"
                WHERE ("Extent4"."AID" = "Extent5"."AID")
            )  "Project5"
            WHERE ( EXISTS (SELECT 
                1 AS "C1"
                FROM "SCHEMA"."CX" "Extent6"
                WHERE (("Project5"."CID" = "Extent6"."CID") AND (1 = ( CAST(
"Extent6"."CXID" AS number(9,0)))))
            ))
        ))) "UnionAll1"
)  "Distinct1"
ORA-00904: "Extent1"."AID": invalid identifier