context.SubmitChanges() throw NullReferenceException.
Posted: Sun 28 Jun 2009 22:25
Hi devart team
Im using dotConnect 5.20.33 for Oracle 10.2g and cannot run the following code without getting a NullReferenceException:
context.Connection.Open();
ActionTagTypeEntity atte = new ActionTagTypeEntity
{
Id = 0,
ActionTagEntities = null,
ActionTagTypeName = "TEST 20090628 1255",
IsActive = 1,
IsDeleted = 0,
Version = DateTime.Now
};
context.ActionTagTypeEntities.InsertOnSubmit(atte);
context.SubmitChanges(ConflictMode.ContinueOnConflict);
context.Connection.Close();
My DDL for the DB is:
-------------------------
CREATE TABLE "MyUser"."ActionTagType" (
"Id" NUMBER(20),
"ActionTagTypeName" VARCHAR2(250) NOT NULL,
"IsDeleted" NUMBER(1) DEFAULT 0 NOT NULL,
"IsActive" NUMBER(1) DEFAULT 1 NOT NULL,
"Version" TIMESTAMP(6),
CONSTRAINT "pk_ActionTagTypeId" PRIMARY KEY ("Id"),
CONSTRAINT "un_TagName" UNIQUE ("ActionTagTypeName"))
TABLESPACE USERS
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE OR REPLACE TRIGGER "MyUser"."trg_InsertActionTagType"
BEFORE INSERT ON "MyUser"."ActionTagType" FOR EACH ROW
BEGIN
SELECT "seq_ActionTagType".NEXTVAL INTO :new."Id" FROM DUAL;
END;
CREATE TABLE "MyUser"."ActionTag" (
"Id" NUMBER(20),
"ActionTagTypeId" NUMBER(20) NOT NULL,
"ActionTagValue" VARCHAR2(250) NOT NULL,
"IsDeleted" NUMBER(1) DEFAULT 0 NOT NULL,
"IsActive" NUMBER(1) DEFAULT 1 NOT NULL,
"Version" TIMESTAMP(6) NOT NULL,
CONSTRAINT "fk_ActionTagTypeId" FOREIGN KEY ("ActionTagTypeId")
REFERENCES "MyUser"."ActionTagType"("Id"),
CONSTRAINT "pk_MeterActionTagId" PRIMARY KEY ("Id"),
CONSTRAINT "un_TagValue" UNIQUE ("ActionTagValue"))
TABLESPACE USERS
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE OR REPLACE TRIGGER "MyUser"."trg_InsertActionTag"
BEFORE INSERT ON "MyUser"."ActionTag" FOR EACH ROW
BEGIN
SELECT "seq_ActionTag".NEXTVAL INTO :new."Id" FROM DUAL;
END;
The Entity Developer 2.0.21 has been used in producing the LINQ DataContext for Oracle 10.2g
Also I am not able to utilize the Version timstamp on both Tables as Optimistic locking. I have enabled the property IsVersion on the database Version column. If I try to utilize the timestamp I get an Oracle error back saying that I cannot insert null into the column because the column is defined as NOT NULL. The Version property in the code is not null and actually holds a valid datetime value.
Please advice on how to utilize the InsertOnSubmit() api and further on how to make use of optimistic locking using timestamp.
Best regards,
Michael
Im using dotConnect 5.20.33 for Oracle 10.2g and cannot run the following code without getting a NullReferenceException:
context.Connection.Open();
ActionTagTypeEntity atte = new ActionTagTypeEntity
{
Id = 0,
ActionTagEntities = null,
ActionTagTypeName = "TEST 20090628 1255",
IsActive = 1,
IsDeleted = 0,
Version = DateTime.Now
};
context.ActionTagTypeEntities.InsertOnSubmit(atte);
context.SubmitChanges(ConflictMode.ContinueOnConflict);
context.Connection.Close();
My DDL for the DB is:
-------------------------
CREATE TABLE "MyUser"."ActionTagType" (
"Id" NUMBER(20),
"ActionTagTypeName" VARCHAR2(250) NOT NULL,
"IsDeleted" NUMBER(1) DEFAULT 0 NOT NULL,
"IsActive" NUMBER(1) DEFAULT 1 NOT NULL,
"Version" TIMESTAMP(6),
CONSTRAINT "pk_ActionTagTypeId" PRIMARY KEY ("Id"),
CONSTRAINT "un_TagName" UNIQUE ("ActionTagTypeName"))
TABLESPACE USERS
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE OR REPLACE TRIGGER "MyUser"."trg_InsertActionTagType"
BEFORE INSERT ON "MyUser"."ActionTagType" FOR EACH ROW
BEGIN
SELECT "seq_ActionTagType".NEXTVAL INTO :new."Id" FROM DUAL;
END;
CREATE TABLE "MyUser"."ActionTag" (
"Id" NUMBER(20),
"ActionTagTypeId" NUMBER(20) NOT NULL,
"ActionTagValue" VARCHAR2(250) NOT NULL,
"IsDeleted" NUMBER(1) DEFAULT 0 NOT NULL,
"IsActive" NUMBER(1) DEFAULT 1 NOT NULL,
"Version" TIMESTAMP(6) NOT NULL,
CONSTRAINT "fk_ActionTagTypeId" FOREIGN KEY ("ActionTagTypeId")
REFERENCES "MyUser"."ActionTagType"("Id"),
CONSTRAINT "pk_MeterActionTagId" PRIMARY KEY ("Id"),
CONSTRAINT "un_TagValue" UNIQUE ("ActionTagValue"))
TABLESPACE USERS
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE OR REPLACE TRIGGER "MyUser"."trg_InsertActionTag"
BEFORE INSERT ON "MyUser"."ActionTag" FOR EACH ROW
BEGIN
SELECT "seq_ActionTag".NEXTVAL INTO :new."Id" FROM DUAL;
END;
The Entity Developer 2.0.21 has been used in producing the LINQ DataContext for Oracle 10.2g
Also I am not able to utilize the Version timstamp on both Tables as Optimistic locking. I have enabled the property IsVersion on the database Version column. If I try to utilize the timestamp I get an Oracle error back saying that I cannot insert null into the column because the column is defined as NOT NULL. The Version property in the code is not null and actually holds a valid datetime value.
Please advice on how to utilize the InsertOnSubmit() api and further on how to make use of optimistic locking using timestamp.
Best regards,
Michael