Posted: Tue 27 Jul 2010 14:28
Could you please send us (support * devart * com, subject "EF: Multiple Include") a small test project illustrating the issue?
Discussion forums for open issues and questions concerning database tools, data access components and developer tools from Devart
https://forums.devart.com/
Code: Select all
StringBuilder queryString = new StringBuilder(@"SELECT value x FROM DB.A as A join DB.B as B on (B.A.AID = A.AID) where B.Date = ANYELEMENT((select value max(B1.Date) from DB.B as B1 where B1.A.AId = A.AID)) and B.C.CId = 7");
ObjectQuery qu = new ObjectQuery(queryString.ToString(), context);
List result = qu
.Include("D.E")
.Include("F")
.Include("G.H.I")
.Include("G.H.J")
.Execute(MergeOption.NoTracking).ToList();
List result2= null;
ObjectQuery qu2;
qu2 = (ObjectQuery)(from code in context.Zs
select x1);
reuslt2= qu2
.Include("Y.W")
.Include("V")
.Include("U.T")
.Execute(MergeOption.NoTracking).ToList();
Code: Select all
SELECT
"UnionAll1".TYPE AS C1,
"UnionAll1".ID AS C2,
"UnionAll1".XID AS C3,
"UnionAll1".TS AS C4,
"UnionAll1".NAME AS C5,
"UnionAll1".DESCRIPTION AS C6,
"UnionAll1".ISSUER AS C7,
"UnionAll1".FLAGS AS C8,
"UnionAll1".TYPE1 AS C9,
"UnionAll1".EXTID AS C10,
"UnionAll1".TYPE2 AS C11,
"UnionAll1".VALIDFROM AS C12,
"UnionAll1".VALIDUNTIL AS C13,
"UnionAll1".CREATED AS C14,
"UnionAll1".DELETED AS C15,
"UnionAll1".C2 AS C16,
"UnionAll1".TYPE3 AS C17,
"UnionAll1".ID1 AS C18,
"UnionAll1".XID1 AS C19,
"UnionAll1".TS1 AS C20,
"UnionAll1".NAME1 AS C21,
"UnionAll1".DESCRIPTION1 AS C22,
"UnionAll1".ISSUER1 AS C23,
"UnionAll1".FLAGS1 AS C24,
"UnionAll1".TYPE4 AS C25,
"UnionAll1".EXTID1 AS C26,
"UnionAll1".TYPE5 AS C27,
"UnionAll1".VALIDFROM1 AS C28,
"UnionAll1".VALIDUNTIL1 AS C29,
"UnionAll1".CREATED1 AS C30,
"UnionAll1".DELETED1 AS C31,
"UnionAll1".TYPE6 AS C32,
"UnionAll1".ID2 AS C33,
"UnionAll1".XID2 AS C34,
"UnionAll1".TS2 AS C35,
"UnionAll1".NAME2 AS C36,
"UnionAll1".DESCRIPTION2 AS C37,
"UnionAll1".ISSUER2 AS C38,
"UnionAll1".FLAGS2 AS C39,
"UnionAll1".TYPE7 AS C40,
"UnionAll1".EXTID2 AS C41,
"UnionAll1".TYPE8 AS C42,
"UnionAll1".VALIDFROM2 AS C43,
"UnionAll1".VALIDUNTIL2 AS C44,
"UnionAll1".CREATED2 AS C45,
"UnionAll1".DELETED2 AS C46,
"UnionAll1".C1 AS C47,
"UnionAll1".ID3 AS C48,
"UnionAll1".XID3 AS C49,
"UnionAll1".TS3 AS C50,
"UnionAll1".NAME3 AS C51,
"UnionAll1".DESCRIPTION3 AS C52,
"UnionAll1".ISSUER3 AS C53,
"UnionAll1".FLAGS3 AS C54,
"UnionAll1".TYPE9 AS C55,
"UnionAll1".EXTID3 AS C56,
"UnionAll1".TYPE10 AS C57,
"UnionAll1".VALIDFROM3 AS C58,
"UnionAll1".VALIDUNTIL3 AS C59,
"UnionAll1".CREATED3 AS C60,
"UnionAll1".DELETED3 AS C61,
"UnionAll1".C3 AS C62,
"UnionAll1".C4 AS C63,
"UnionAll1".C5 AS C64,
"UnionAll1".C6 AS C65,
"UnionAll1".C7 AS C66,
"UnionAll1".C8 AS C67,
"UnionAll1".C9 AS C68,
"UnionAll1".C10 AS C69,
"UnionAll1".C11 AS C70,
"UnionAll1".C12 AS C71,
"UnionAll1".C13 AS C72,
"UnionAll1".C14 AS C73,
"UnionAll1".C15 AS C74,
"UnionAll1".C16 AS C75
FROM (SELECT
CASE WHEN "Join1".TYPE IS NULL THEN TO_NUMBER(NULL) ELSE 1 END AS C1,
"Extent1".TYPE AS TYPE,
"Extent1".ID AS ID,
"Extent1".XID AS XID,
"Extent1".TS AS TS,
"Extent1".NAME AS NAME,
"Extent1".DESCRIPTION AS DESCRIPTION,
"Extent1".ISSUER AS ISSUER,
"Extent1".FLAGS AS FLAGS,
"Extent1".TYPE AS TYPE1,
"Extent1".EXTID AS EXTID,
"Extent1".TYPE AS TYPE2,
"Extent1".VALIDFROM AS VALIDFROM,
"Extent1".VALIDUNTIL AS VALIDUNTIL,
"Extent1".CREATED AS CREATED,
"Extent1".DELETED AS DELETED,
'Children,Parents' AS C2,
"Extent1".TYPE AS TYPE3,
"Extent1".ID AS ID1,
"Extent1".XID AS XID1,
"Extent1".TS AS TS1,
"Extent1".NAME AS NAME1,
"Extent1".DESCRIPTION AS DESCRIPTION1,
"Extent1".ISSUER AS ISSUER1,
"Extent1".FLAGS AS FLAGS1,
"Extent1".TYPE AS TYPE4,
"Extent1".EXTID AS EXTID1,
"Extent1".TYPE AS TYPE5,
"Extent1".VALIDFROM AS VALIDFROM1,
"Extent1".VALIDUNTIL AS VALIDUNTIL1,
"Extent1".CREATED AS CREATED1,
"Extent1".DELETED AS DELETED1,
"Extent1".TYPE AS TYPE6,
"Extent1".ID AS ID2,
"Extent1".XID AS XID2,
"Extent1".TS AS TS2,
"Extent1".NAME AS NAME2,
"Extent1".DESCRIPTION AS DESCRIPTION2,
"Extent1".ISSUER AS ISSUER2,
"Extent1".FLAGS AS FLAGS2,
"Extent1".TYPE AS TYPE7,
"Extent1".EXTID AS EXTID2,
"Extent1".TYPE AS TYPE8,
"Extent1".VALIDFROM AS VALIDFROM2,
"Extent1".VALIDUNTIL AS VALIDUNTIL2,
"Extent1".CREATED AS CREATED2,
"Extent1".DELETED AS DELETED2,
"Join1".ID AS ID3,
"Join1".XID AS XID3,
"Join1".TS AS TS3,
"Join1".NAME AS NAME3,
"Join1".DESCRIPTION AS DESCRIPTION3,
"Join1".ISSUER AS ISSUER3,
"Join1".FLAGS AS FLAGS3,
"Join1".TYPE AS TYPE9,
"Join1".EXTID AS EXTID3,
"Join1".TYPE AS TYPE10,
"Join1".VALIDFROM AS VALIDFROM3,
"Join1".VALIDUNTIL AS VALIDUNTIL3,
"Join1".CREATED AS CREATED3,
"Join1".DELETED AS DELETED3,
TO_CHAR(NULL) AS C3,
TO_CHAR(NULL) AS C4,
CAST(NULL AS TIMESTAMP(9)) AS C5,
TO_NCHAR(NULL) AS C6,
TO_NCLOB(NULL) AS C7,
TO_CHAR(NULL) AS C8,
TO_NCHAR(NULL) AS C9,
TO_NUMBER(NULL) AS C10,
TO_NCHAR(NULL) AS C11,
TO_NUMBER(NULL) AS C12,
CAST(NULL AS TIMESTAMP(9)) AS C13,
CAST(NULL AS TIMESTAMP(9)) AS C14,
CAST(NULL AS TIMESTAMP(9)) AS C15,
TO_NUMBER(NULL) AS C16
FROM INDEXES "Extent1"
LEFT OUTER JOIN (SELECT
"Extent2".PARENT AS PARENT,
"Extent2".CHILD AS CHILD,
"Extent3".ID AS ID,
"Extent3".XID AS XID,
"Extent3".TS AS TS,
"Extent3".NAME AS NAME,
"Extent3".ISSUER AS ISSUER,
"Extent3".FLAGS AS FLAGS,
"Extent3".TYPE AS TYPE,
"Extent3".EXTID AS EXTID,
"Extent3".DESCRIPTION AS DESCRIPTION,
"Extent3".VALIDFROM AS VALIDFROM,
"Extent3".VALIDUNTIL AS VALIDUNTIL,
"Extent3".CREATED AS CREATED,
"Extent3".DELETED AS DELETED
FROM INDEXES_TREE "Extent2"
INNER JOIN INDEXES "Extent3" ON "Extent3".ID = "Extent2".CHILD ) "Join1" ON "Extent1".ID = "Join1".PARENT
UNION ALL
SELECT
2 AS C1,
"Extent4".TYPE AS TYPE,
"Extent4".ID AS ID,
"Extent4".XID AS XID,
"Extent4".TS AS TS,
"Extent4".NAME AS NAME,
"Extent4".DESCRIPTION AS DESCRIPTION,
"Extent4".ISSUER AS ISSUER,
"Extent4".FLAGS AS FLAGS,
"Extent4".TYPE AS TYPE1,
"Extent4".EXTID AS EXTID,
"Extent4".TYPE AS TYPE2,
"Extent4".VALIDFROM AS VALIDFROM,
"Extent4".VALIDUNTIL AS VALIDUNTIL,
"Extent4".CREATED AS CREATED,
"Extent4".DELETED AS DELETED,
'Children,Parents' AS C2,
"Extent4".TYPE AS TYPE3,
"Extent4".ID AS ID1,
"Extent4".XID AS XID1,
"Extent4".TS AS TS1,
"Extent4".NAME AS NAME1,
"Extent4".DESCRIPTION AS DESCRIPTION1,
"Extent4".ISSUER AS ISSUER1,
"Extent4".FLAGS AS FLAGS1,
"Extent4".TYPE AS TYPE4,
"Extent4".EXTID AS EXTID1,
"Extent4".TYPE AS TYPE5,
"Extent4".VALIDFROM AS VALIDFROM1,
"Extent4".VALIDUNTIL AS VALIDUNTIL1,
"Extent4".CREATED AS CREATED1,
"Extent4".DELETED AS DELETED1,
"Extent4".TYPE AS TYPE6,
"Extent4".ID AS ID2,
"Extent4".XID AS XID2,
"Extent4".TS AS TS2,
"Extent4".NAME AS NAME2,
"Extent4".DESCRIPTION AS DESCRIPTION2,
"Extent4".ISSUER AS ISSUER2,
"Extent4".FLAGS AS FLAGS2,
"Extent4".TYPE AS TYPE7,
"Extent4".EXTID AS EXTID2,
"Extent4".TYPE AS TYPE8,
"Extent4".VALIDFROM AS VALIDFROM2,
"Extent4".VALIDUNTIL AS VALIDUNTIL2,
"Extent4".CREATED AS CREATED2,
"Extent4".DELETED AS DELETED2,
TO_CHAR(NULL) AS C3,
TO_CHAR(NULL) AS C4,
CAST(NULL AS TIMESTAMP(9)) AS C5,
TO_NCHAR(NULL) AS C6,
TO_NCLOB(NULL) AS C7,
TO_CHAR(NULL) AS C8,
TO_NCHAR(NULL) AS C9,
TO_NUMBER(NULL) AS C10,
TO_NCHAR(NULL) AS C11,
TO_NUMBER(NULL) AS C12,
CAST(NULL AS TIMESTAMP(9)) AS C13,
CAST(NULL AS TIMESTAMP(9)) AS C14,
CAST(NULL AS TIMESTAMP(9)) AS C15,
TO_NUMBER(NULL) AS C16,
"Join3".ID AS ID3,
"Join3".XID AS XID3,
"Join3".TS AS TS3,
"Join3".NAME AS NAME3,
"Join3".DESCRIPTION AS DESCRIPTION3,
"Join3".ISSUER AS ISSUER3,
"Join3".FLAGS AS FLAGS3,
"Join3".TYPE AS TYPE9,
"Join3".EXTID AS EXTID3,
"Join3".TYPE AS TYPE10,
"Join3".VALIDFROM AS VALIDFROM3,
"Join3".VALIDUNTIL AS VALIDUNTIL3,
"Join3".CREATED AS CREATED3,
"Join3".DELETED AS DELETED3
FROM INDEXES "Extent4"
INNER JOIN (SELECT
"Extent5".PARENT AS PARENT,
"Extent5".CHILD AS CHILD,
"Extent6".ID AS ID,
"Extent6".XID AS XID,
"Extent6".TS AS TS,
"Extent6".NAME AS NAME,
"Extent6".ISSUER AS ISSUER,
"Extent6".FLAGS AS FLAGS,
"Extent6".TYPE AS TYPE,
"Extent6".EXTID AS EXTID,
"Extent6".DESCRIPTION AS DESCRIPTION,
"Extent6".VALIDFROM AS VALIDFROM,
"Extent6".VALIDUNTIL AS VALIDUNTIL,
"Extent6".CREATED AS CREATED,
"Extent6".DELETED AS DELETED
FROM INDEXES_TREE "Extent5"
INNER JOIN INDEXES "Extent6" ON "Extent6".ID = "Extent5".PARENT ) "Join3" ON "Extent4".ID = "Join3".CHILD) "UnionAll1"
ORDER BY "UnionAll1".ID2 ASC, "UnionAll1".C1 ASC