我想我在SQL Server上做单元测试时遇到了一个有趣的问题。我的表被设置为级联删除。
我有一个父表,我插入了一行。一切都很顺利。
现在,我特意在子表中插入了一个实体,列Id的值为父Id,外键为父Id。插入失败,错误
当IDENTITY_INSERT设置为OFF时,不能在表'XXXXX'中插入标识列的显式值
在那一刻,事情变得更糟了。
我试图删除父行。SQL Server对我大喊,我仍然不能插入到子表,而IDENTITY_INSERT
是关闭的。与无效插入相同的错误。我推测级联删除正在启动,但由于我没有成功地在父PK的子表中插入一行,因此应该没有问题。
以前有人遇到过这样的问题吗?
我会接受@IvanStoev的回答。这是一个数据库上下文问题。我对两个操作使用相同的上下文,实体仍然在缓存中。实体框架试图在删除实体之前添加实体。