we're using the entity framework 4.1 and devart with oracle.
Recently we tried to update our devart provider from version 6.10.126 to 6.5.
After that update we receive the "ORA-12704: character set mismatch" exception in some situations.
Our datamodel is a little more complex and contains at maximum a three level deep inheritance. I tried to reduce its complexity as far as possible but it's still too complex to explain in detail. I can send you my sample project which causes that bug.
The bug occurs, when I execute the following statement:
Code: Select all
var foreigners = (from s in storage.Person.OfType() select s).ToList();
Code: Select all
SELECT
1 AS C1,
CASE WHEN (("Project1".C1 = 1) AND ("Project1".C1 IS NOT NULL)) AND ( NOT (("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL))) THEN '0X0X0X' WHEN ("UnionAll2".C2 = 1) AND ("UnionAll2".C2 IS NOT NULL) THEN '0X1X' WHEN ("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL) THEN '0X0X0X0X' ELSE '0X2X0X' END AS C2,
"Extent1".DBKEY AS DBKEY,
CASE WHEN (("Project1".C1 = 1) AND ("Project1".C1 IS NOT NULL)) AND ( NOT (("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL))) THEN "Project1".CON_JOBDESCRIPTION WHEN ("UnionAll2".C2 = 1) AND ("UnionAll2".C2 IS NOT NULL) THEN TO_NCHAR(NULL) WHEN ("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL) THEN "Project1".CON_JOBDESCRIPTION END AS C3,
CASE WHEN (("Project1".C1 = 1) AND ("Project1".C1 IS NOT NULL)) AND ( NOT (("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL))) THEN TO_NUMBER(NULL) WHEN ("UnionAll2".C2 = 1) AND ("UnionAll2".C2 IS NOT NULL) THEN TO_NUMBER(NULL) WHEN ("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL) THEN TO_NUMBER(NULL) ELSE "UnionAll2".C4 END AS C4
FROM DOMAINOBJECTBASE "Extent1"
LEFT OUTER JOIN (SELECT
"Extent2".CON_JOBDESCRIPTION AS CON_JOBDESCRIPTION,
"Extent2".DBKEY AS DBKEY,
1 AS C1
FROM CONTAINER "Extent2" ) "Project1" ON "Extent1".DBKEY = "Project1".DBKEY
LEFT OUTER JOIN (SELECT
"UnionAll1".DBKEY AS C1,
"UnionAll1".C1 AS C2,
"UnionAll1".C2 AS C3,
"UnionAll1".SPC_ASS_CONTAINER AS C4
FROM (SELECT
"Extent3".DBKEY AS DBKEY,
0 AS C1,
0 AS C2,
"Extent3".SPC_ASS_CONTAINER AS SPC_ASS_CONTAINER
FROM SPECIMEN "Extent3"
UNION ALL
SELECT
"Extent4".DBKEY AS DBKEY,
0 AS C1,
1 AS C2,
TO_NUMBER(NULL) AS C3
FROM REAGENTCONTAINER "Extent4") "UnionAll1"
UNION ALL
SELECT
"Extent5".DBKEY AS DBKEY,
1 AS C1,
0 AS C2,
TO_NUMBER(NULL) AS C3
FROM KIT "Extent5") "UnionAll2" ON "Extent1".DBKEY = "UnionAll2".C1
WHERE CASE WHEN (("Project1".C1 = 1) AND ("Project1".C1 IS NOT NULL)) AND ( NOT (("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL))) THEN '0X0X0X'
WHEN ("UnionAll2".C2 = 1) AND ("UnionAll2".C2 IS NOT NULL) THEN '0X1X'
WHEN ("UnionAll2".C3 = 1) AND ("UnionAll2".C3 IS NOT NULL) THEN '0X0X0X0X' ELSE '0X2X0X' END LIKE '0X2X%'
If you need any additional information or the sample project, please let me know.
Andi