- 3,715,654 Users
- 2,242,821 Discussions
- 7,845,480 Comments
Forum Stats
Discussions
Categories
- 17 Data
- 362.2K Big Data Appliance
- 7 Data Science
- 1.6K Databases
- 467 General Database Discussions
- 3.7K Java and JavaScript in the Database
- 22 Multilingual Engine
- 487 MySQL Community Space
- 3 NoSQL Database
- 7.6K Oracle Database Express Edition (XE)
- 2.8K ORDS, SODA & JSON in the Database
- 416 SQLcl
- 42 SQL Developer Data Modeler
- 184.8K SQL & PL/SQL
- 21K SQL Developer
- 1.9K Development
- 3 Developer Projects
- 32 Programming Languages
- 135.1K Development Tools
- 8 DevOps
- 3K QA/Testing
- 247 Java
- 5 Java Learning Subscription
- 10 Database Connectivity
- 66 Java Community Process
- 1 Java 25
- 9 Java APIs
- 141.1K Java Development Tools
- 6 Java EE (Java Enterprise Edition)
- 153K Java Essentials
- 135 Java 8 Questions
- 86.2K Java Programming
- 270 Java Lambda MOOC
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 10 Java SE
- 13.8K Java Security
- 3 Java User Groups
- 22 JavaScript - Nashorn
- 18 Programs
- 125 LiveLabs
- 30 Workshops
- 9 Software
- 3 Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 3 Deutsche Oracle Community
- 10 Español
- 1.9K Japanese
- 2 Portuguese
Adding a new record via Entity Framework 6
With Visual Studio 2017 installed the developer tools, setup a test project that simply sets up a dbContext, adds a new entry, does a save which should return the new primary key but instead returns the following error
Oracle version 11.2.0.3.0
Error message
ORA-01400: cannot insert NULL into ("OCS"."SEQUENCETEST_TABLE"."ID")
ORA-06512: at line 4
Table definition
CREATE TABLE "OCS"."SEQUENCETEST_TABLE" ( "ID" NUMBER(*,0), "OTHERCOLUMN" VARCHAR2(255 BYTE), PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TS_OCS" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TS_OCS" ;
Sequence
CREATE SEQUENCE SEQUENCETEST_SEQUENCE START WITH 1 INCREMENT BY 1
Code which fails with the error message above.
using (Entities1 context = new Entities1()){ var item = new SEQUENCETEST_TABLE() { OTHERCOLUMN = "From VS2017" }; context.SEQUENCETEST_TABLE.Add(item); context.Entry(item).State = System.Data.Entity.EntityState.Added; try { context.SaveChanges(); Console.WriteLine(item.ID); } catch (Exception ex) { Console.WriteLine(ex.Message); }}
Additionally StoreGeneratedPattern is set to identity which it was not originally.
So my question. have I done something incorrectly?
Best Answer
-
I believe you need a trigger here. See https://docs.oracle.com/cd/E85694_01/ODPNT/entityDataTypeMapping.htm#ODPNT8304
Answers
-
I believe you need a trigger here. See https://docs.oracle.com/cd/E85694_01/ODPNT/entityDataTypeMapping.htm#ODPNT8304