I have problem with automaticaly SELECT construction with three tables.
VS2008+Oracle 10g+Entity Developer 2.20.30+Devart Data Oracle 5.25.37.0
Bye, PaRi
SQL script:
Code: Select all
create table A_P
(
id NUMBER(8) NOT NULL,
name NVARCHAR2(126) NOT NULL
);
create table A_S
(
id NUMBER(8) NOT NULL,
id_p NUMBER(8) NOT NULL,
name NVARCHAR2(126) NOT NULL
);
create table A_E
(
id NUMBER(8) NOT NULL,
id_p NUMBER(8) NOT NULL,
zip NUMBER(5) NOT NULL
);
ALTER TABLE A_P ADD CONSTRAINT PK_A_P
PRIMARY KEY (id);
ALTER TABLE A_S ADD CONSTRAINT PK_A_S
PRIMARY KEY (id);
ALTER TABLE A_E ADD CONSTRAINT PK_A_E
PRIMARY KEY (id);
ALTER TABLE A_S ADD CONSTRAINT FK_A_S_A_P
FOREIGN KEY (id_p) REFERENCES A_P (id)
;
ALTER TABLE A_E ADD CONSTRAINT FK_A_E_A_P
FOREIGN KEY (id_p) REFERENCES A_P (id)
;
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataSourceModel1;
namespace DevartErrorReport1
{
class Program
{
static void Main(string[] args)
{
//--- monitor
Devart.Data.Oracle.OracleMonitor monitor = new Devart.Data.Oracle.OracleMonitor();
monitor.IsActive = true;
//---
DataSourceModel1.DataSourceModel1Entities entities = new DataSourceModel1.DataSourceModel1Entities();
//Next line is generating error {"ORA-12704: character set mismatch"}
foreach (var item in entities.APs.Include("AS").Include("AE"))
{
Console.WriteLine(String.Format("{0} > {1}", item.Id, item.Name));
}
}
}
}
Problem is in code "TO_CHAR(NULL) AS C5", correct is (for example) "TO_NCHAR(NULL) AS C5"
Code: Select all
SELECT
"UnionAll1".ID AS C1,
"UnionAll1".NAME AS C2,
"UnionAll1".C2 AS C3,
"UnionAll1".C1 AS C4,
"UnionAll1".C3 AS C5,
"UnionAll1".ID1 AS C6,
"UnionAll1".NAME1 AS C7,
"UnionAll1".ID_P AS C8,
"UnionAll1".C4 AS C9,
"UnionAll1".C5 AS C10,
"UnionAll1".C6 AS C11,
"UnionAll1".C7 AS C12
FROM (SELECT
CASE WHEN ("Extent2".ID IS NULL) THEN FLOOR(CAST(NULL AS NUMBER)) ELSE 1 END AS C1,
"Extent1".ID AS ID,
"Extent1".NAME AS NAME,
1 AS C2,
CASE WHEN ("Extent2".ID IS NULL) THEN FLOOR(CAST(NULL AS NUMBER)) ELSE 1 END AS C3,
"Extent2".ID AS ID1,
"Extent2".NAME AS NAME1,
"Extent2".ID_P AS ID_P,
FLOOR(CAST(NULL AS NUMBER)) AS C4,
FLOOR(CAST(NULL AS NUMBER)) AS C5,
FLOOR(CAST(NULL AS NUMBER)) AS C6,
FLOOR(CAST(NULL AS NUMBER)) AS C7
FROM EMISSION.A_P "Extent1"
LEFT OUTER JOIN EMISSION.A_S "Extent2" ON "Extent1".ID = "Extent2".ID_P
UNION ALL
SELECT
2 AS C1,
"Extent3".ID AS ID,
"Extent3".NAME AS NAME,
1 AS C2,
FLOOR(CAST(NULL AS NUMBER)) AS C3,
FLOOR(CAST(NULL AS NUMBER)) AS C4,
TO_CHAR(NULL) AS C5,
FLOOR(CAST(NULL AS NUMBER)) AS C6,
1 AS C7,
"Extent4".ID AS ID1,
"Extent4".ZIP AS ZIP,
"Extent4".ID_P AS ID_P
FROM EMISSION.A_P "Extent3"
INNER JOIN EMISSION.A_E "Extent4" ON "Extent3".ID = "Extent4".ID_P) "UnionAll1"
ORDER BY "UnionAll1".ID ASC, "UnionAll1".C1 ASC