对于我们的项目,我们将数据存储在Oracle DB中。并使用数据库第一种方法来构建我们的模型。
我们有2个业务实体表,第三个表创建了多对多的关系。
事实上,除了主表的外键之外,映射表还有额外的字段。 正如我从EF文档中所理解的那样,如果映射表没有那个额外的字段,那么EF只会从模型中“隐藏”映射表,并会创建从一个业务实体到另一个业务实体的直接引用集合。但不是我们的情况。
可能是因为额外字段或者因为oracle提供程序我们使用“Oracle.ManagedDataAccess.Client”但是在删除实体框架时会生成不正确的删除语句顺序。 即使我为模型和数据库中的关联设置了级联删除,外键约束也有级联删除规则。
=============== BEGIN COMMAND ===============
delete "X"."SCORECARD"
where (("SCORECARDID" = :p0) and ("DATE_CHANGED" = :p1))
:p0 = test1
:p1 = 5/30/2014 2:52:55 PM
=============== END COMMAND ===============
=============== BEGIN COMMAND ===============
delete "X"."SCORECARD_CATEGORY"
where (("SCORECATEGORYID" = :p0) and ("SCORECARDID" = :p1))
:p0 = DB3
:p1 = test1
=============== END COMMAND ===============
=============== BEGIN COMMAND ===============
delete "X"."SCORECARD_CATEGORY"
where (("SCORECATEGORYID" = :p0) and ("SCORECARDID" = :p1))
:p0 = DB4
:p1 = test1
=============== END COMMAND ===============
您能否建议我应该检查/更改/添加/删除任何内容以使其正常工作?