微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Entity Framework 6 CommandInterceptor Reader中执行修改结果

如何解决如何在Entity Framework 6 CommandInterceptor Reader中执行修改结果

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 举报,一经查实,本站将立刻删除。