C# 先插入子级的存储过程和表继承

C# 先插入子级的存储过程和表继承,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我正在使用EF6,并试图将现有项目转换为使用存储过程进行所有插入、更新和删除 我有一个现有的EDMX,其中包含一组继承的表 我有一个包含主键和标识插入的基本表事务 然后我有各种各样的子表,它们将事务设置为它们的基表。这些表有一个Id字段,该字段是该表上的主键,是事务的外键-无标识插入 这是EF的开箱即用。但是,当切换到存储过程时,EF首先调用子存储过程,但由于我的外键约束,它尝试插入id为0的子表,因此失败。我能够通过使子表的存储过程获取所有数据(包括基表的公共数据)来解决这个问题 然后,该存储

我正在使用EF6,并试图将现有项目转换为使用存储过程进行所有插入、更新和删除

我有一个现有的EDMX,其中包含一组继承的表

我有一个包含主键和标识插入的基本表事务

然后我有各种各样的子表,它们将事务设置为它们的基表。这些表有一个Id字段,该字段是该表上的主键,是事务的外键-无标识插入


这是EF的开箱即用。但是,当切换到存储过程时,EF首先调用子存储过程,但由于我的外键约束,它尝试插入id为0的子表,因此失败。

我能够通过使子表的存储过程获取所有数据(包括基表的公共数据)来解决这个问题

然后,该存储过程首先插入基表并存储生成的id。然后插入子表并返回新id


因为层次结构中的所有表都需要存储过程映射,所以您可能不需要将基表抽象(我不能),所以我创建了不做任何事情的虚拟存储过程,并将基表映射到虚拟存储过程。

我不清楚您希望得到什么样的答案?您从(我假设)基于“正常”的表数据操作转向基于SP的操作是出于什么原因?我们的想法是,无缝部署将更容易,所有数据库操作都将通过存储过程进行,因为它将允许我们在无需代码的情况下推动数据库更改。我要寻找的答案是为什么EF对继承的表以错误的顺序调用存储过程。你能发布你的代码吗?