问题描述
EF 6 / C#6
我已经实现了IDbCommandInterceptor。我用与外键相关的表中的对象调用SaveChanges。对于第一个表,EF生成一个INSERT查询,并向其附加SELECT以返回计算所得的字段。第二张表有更改,但尚未击中。在第一次执行ReaderExecuting时,我添加了第二条SELECT语句。
在ReaderExecuted中,我访问InterceptionContext.Result(它是一个sqlDataReader),并使用reader.NextResult从第二条SELECT语句中获取信息。
这一切都有效,但是在ReaderExecuted和随后的NonQueryExecuting(第二张表的INSERT所在的位置)之间,EF引发错误,表示实体可能已被修改或删除。这是一个测试环境-我通常是唯一的用户。
我猜想我对读者的处理导致它“花了”,而EF中的某些功能对此感到不满意。没有我的“阅读器”阅读器,该流程将成功继续进行到第二个表的下一个NonQueryExecuting / Executed序列。
我看过一些文档,说我可以替换结果,但是我没有找到任何解释。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)