more OracleEdmWizard.exe bugs

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
amit
Posts: 10
Joined: Tue 01 Jan 2008 13:28

more OracleEdmWizard.exe bugs

Post by amit » Wed 23 Jan 2008 08:36

using oracle 9.2i.
My Schema contains table named "SystemRoles". the name is with quotes so it'll maintain small and capital letters, more convenient for reading.
CREATE TABLE "SHIPS"."SystemRoles"
(
"RoleId" NUMBER(2) NOT NULL ENABLE,
"RoleName" NVARCHAR2(20) NOT NULL ENABLE,
"RecordVersion" NUMBER(4) NOT NULL ENABLE,
"RecordUpdate" DATE NOT NULL ENABLE,
"RecordUpdateBy" VARCHAR2(20 CHAR) NOT NULL ENABLE,
PRIMARY KEY ("RoleId")
)

It seems your tool does not support tables and colum names with quotes for making them nicely read.
It works though when I change to
CREATE TABLE SHIPS.SYSTEMROLES
(
ROLEID NUMBER NOT NULL ENABLE,
ROLENAME VARCHAR2(20 BYTE) NOT NULL ENABLE,
RECORDVERSION NUMBER(4,0) NOT NULL ENABLE,
RECORDUPDATE DATE NOT NULL ENABLE,
RECORDUPDATEBY VARCHAR2(20 BYTE) NOT NULL ENABLE,
PRIMARY KEY (ROLEID)
)

But that would create ugly named objects in c#. The camel case notation is important for my readability.

The tool does not support mapping TIMESTAMP column, and it should not be a problem to map it as DateTime in .NET.
It also seems not to support NVARCHAR2 ?

Take this table definition for example:
CREATE TABLE SHIPS.SYSTEMUSERS
( USERID NUMBER NOT NULL ENABLE,
USERNAME VARCHAR2(20 BYTE) NOT NULL ENABLE,
APPROVED NUMBER(1,0) NOT NULL ENABLE,
RECORDVERSION NUMBER(4,0) NOT NULL ENABLE,
RECORDUPDATE DATE NOT NULL ENABLE,
RECORDUPDATEBY VARCHAR2(20 BYTE) NOT NULL ENABLE,
PRIMARY KEY (USERID)
)
I cannot understand what is wrong about it .. however get the same exception.
Those tables even do not have foreign keys.

Alexey.mdr
Posts: 729
Joined: Thu 13 Dec 2007 10:24

Post by Alexey.mdr » Wed 23 Jan 2008 14:10

We will fix the problem with quotation marks in the next build.
The tool does not support mapping TIMESTAMP column, and it should not be a problem to map it as DateTime in .NET.
It also seems not to support NVARCHAR2 ?
Please send me your project to reproduce the problem.
Do not use third party components.

amit
Posts: 10
Joined: Tue 01 Jan 2008 13:28

Post by amit » Thu 24 Jan 2008 12:10

PLease take the table definition of SYSTEMUSERS from above post, create it in your oracle database and try to model it with your tool.
I did not succeed.

Alexey.mdr
Posts: 729
Joined: Thu 13 Dec 2007 10:24

Post by Alexey.mdr » Thu 24 Jan 2008 12:22

I generate the edmx file successfully from table SCOTT.SYSTEMUSERS. //SCOTT. - is my schema
Could you please specify your steps and the error message that you get?

amit
Posts: 10
Joined: Tue 01 Jan 2008 13:28

Post by amit » Thu 24 Jan 2008 21:40

I receive the error contantly, at least for those table definitions above on one schema.

Error Code 6300
Value cannot be null
Parameter name storeEntityContainer

The tool DID work on some views in another schema.
The tool DID work on your EMP DEPT example on that problematic schema.

I admit I'm not Oracle expert but the tool throws unexpected results.

However succeeded to create 1:1 O/R mapping EDMX file with MyGeneration tool, and was able to use it with your ADOEF provider.

Creating 1:1 mapping with F/K should not be so hard, I hope to get your tool working soon and than consider buying it.

Another request: I saw you save last connection string in the OracleEdmWizard.exe.config. Please please consider loading it's data to the wizard. It's frustrating typing it over and over again.

Alexey.mdr
Posts: 729
Joined: Thu 13 Dec 2007 10:24

Post by Alexey.mdr » Fri 25 Jan 2008 17:36

Probably, you get an exception while generating a scheme for 2 tables with foreign keys. The error may depend on the relations type.
If yes send us please your tables definition script.
Try checking if the same tables, created under other user, produce the error message.

We need to know the callstack of the error.
Perform the following steps:
- Open Visual Studio instance. Choose "Tools" -> "Attach to Process..."
- Click on "OraDirectEDMWizard" in "Available Processes" panel.
- Make the wizard throw an exception.

Post Reply