当存在多级父子关系时,实体框架4以不正确的顺序执行插入操作的存储过程

时间:2010-06-09 12:51:37

标签: entity-framework

我们遇到了Entity Framework 4的一个奇怪问题。我们的模型包含一个与3个实体相关联的实体,让我们称它们为第一级子。其中一个子实体与另一个实体相关联 - 让我们将其称为二级子实体。

所有这5个实体都映射到存储过程以执行插入,更新和删除。

在映射存储过程之前,实体框架发出的插入查询的顺序是正确的 - 发出第一个主表的插入查询,然后发出第一级子项的插入查询,最后发出第二级子项的插入查询。

但是在映射存储过程之后,实体框架以错误的顺序发送执行存储过程语句 - 首先是主表的插入存储过程,然后是为2个第一级子节点(不是第二级子节点的父节点)插入存储过程,然后是二级子级存储过程(用于多个记录),最后是作为二级子级父级的剩余一级子级的插入存储过程。

这会产生一个问题,因为在父插入导致外键冲突之前,第二级子进程的插入。

在删除作为二级子级父级的表的存储过程映射时,它可以正常工作。

任何人都知道什么决定了实体框架生成的SQL语句的顺序?

0 个答案:

没有答案