环境介绍
开发环境
- 系统:Win10家庭版
- 数据库:Mysql5.7
- .Net环境:.Net Core1.1
数据库模型
image.png问题描述
当我使用封装的ProductService进行数据插入操作时候,总是失败。经过多次测试,始终是这样的问题。最后我更换电脑等等排除了环境问题后。我试着测试直接用EF上下文对象context进行添加操作成功了。从这点可以看出来,应该是我的仓储(BaseRepostory)写的有问题了。然后就一步步跟踪调试检查到底是哪里出现问题了。
调试模式下问题跟踪
image.pngimage.png跟踪Service,并查看对象是否赋值正确。经过多次检查一切正常。
image.png跟踪BaseRepostory,检查数据及上下文跟踪对象赋值是否正确。经过多次检查一切正常。
image.png再继续执行下去,报错了。根据报错的内容可以看出,是主键冲突了。但是我做Product的插入操作时,主键gid是数据库自动写入的,并没有给值啊。经常查询报错信息的主键gid信息,发现它是Categories的主键。那么是怎么回事啊?
使用自托管模式再次进行调试,在输出的信息中终于发现了原来是Categories表中执行了“insert”操作。那么就奇怪了,我并没有写它的Add操作啊。经过查询度娘后,发现一篇博文的介绍(http://www.cnblogs.com/CreateMyself/p/6238455.html)。
网友评论