Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EntityFramework与Oracle插入多对多错误_Entity Framework_Oracle11g_Many To Many - Fatal编程技术网

Entity framework EntityFramework与Oracle插入多对多错误

Entity framework EntityFramework与Oracle插入多对多错误,entity-framework,oracle11g,many-to-many,Entity Framework,Oracle11g,Many To Many,我正在使用EntityFramework 5.0对Oracle 11g数据库进行建模。我有3张具有多对多关系的表 CREATE TABLE za (id NUMBER(10,0) NOT NULL, name VARCHAR2(20 BYTE) NOT NULL, CONSTRAINT za_pk PRIMARY KEY (id)); CREATE TABLE zb (id NUMBER(10,0) NOT NULL, name VARCHAR2(20 BYTE) NOT NULL, CONS

我正在使用EntityFramework 5.0对Oracle 11g数据库进行建模。我有3张具有多对多关系的表

CREATE TABLE za
(id NUMBER(10,0) NOT NULL,
name VARCHAR2(20 BYTE) NOT NULL,
CONSTRAINT za_pk PRIMARY KEY (id));

CREATE TABLE zb
(id NUMBER(10,0) NOT NULL,
name VARCHAR2(20 BYTE) NOT NULL,
CONSTRAINT zb_pk PRIMARY KEY (id)) 

CREATE TABLE zc(
za_id NUMBER(10,0) NOT NULL,
zb_id NUMBER(10,0) NOT NULL,
CONSTRAINT zc_pk PRIMARY KEY (za_id, zb_id),
CONSTRAINT zc_za_fk FOREIGN KEY (za_id) REFERENCES za (id),
CONSTRAINT zc_zb_fk FOREIGN KEY (zb_id) REFERENCES zb (id))
为了在向表中插入记录时具有自动增量id,我向每个表中添加了序列和触发器:

CREATE OR REPLACE TRIGGER za_trigger BEFORE INSERT ON za
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN select ZA_SEQ.nextval into :NEW.ID from dual;
END; 

CREATE OR REPLACE TRIGGER zb_trigger BEFORE INSERT ON zb 
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN select ZB_SEQ.nextval into :NEW.ID from dual;
END;
现在,当我使用此代码向数据库插入记录时:

ZA za = new ZA();
za.NAME = "ZA1";

ZB zb1 = new ZB();
zb1.NAME = "ZB1";

ZB zb2 = new ZB();
zb2.NAME = "ZB2";

za.ZB.Add(zb1);
za.ZB.Add(zb2);

Entities entities = new Entities();
entities.ZA.Add(za);
entities.SaveChanges();
我收到此错误:保存未公开其关系的外键属性的实体时出错。EntityEntries属性将返回null,因为无法将单个实体标识为异常源。通过在实体类型中公开外键属性,可以更轻松地在保存时处理异常。有关详细信息,请参见InnerException:

  InnerException  : ORA-02291: integrity constraint (SIMCA.ZC_ZB_FK) violated - parent key not found

那个么,我如何才能将记录插入到具有多对多关系的表中呢?

几天后,我找到了一个解决方案。当我从数据库创建模型时,实体的所有ID必须将其属性
StoreGeneratedPattern
设置为
Identity

所以,没有人能回答我的问题!谢谢是我提醒我的同事在新创建的列上将StoreGeneratedPattern设置为Identity,而现在是我忘记了,不得不追赶ORA-02291。接得好:)