.net Core 1.1 开发踩坑

环境介绍

开发环境

  • 系统:Win10家庭版
  • 数据库:Mysql5.7
  • .Net环境:.Net Core1.1

数据库模型

.net Core 1.1 开发踩坑_第1张图片
image.png

问题描述

当我使用封装的ProductService进行数据插入操作时候,总是失败。经过多次测试,始终是这样的问题。最后我更换电脑等等排除了环境问题后。我试着测试直接用EF上下文对象context进行添加操作成功了。从这点可以看出来,应该是我的仓储(BaseRepostory)写的有问题了。然后就一步步跟踪调试检查到底是哪里出现问题了。

调试模式下问题跟踪

.net Core 1.1 开发踩坑_第2张图片
image.png

跟踪Service,并查看对象是否赋值正确。经过多次检查一切正常。

.net Core 1.1 开发踩坑_第3张图片
image.png

跟踪BaseRepostory,检查数据及上下文跟踪对象赋值是否正确。经过多次检查一切正常。

.net Core 1.1 开发踩坑_第4张图片
image.png

再继续执行下去,报错了。根据报错的内容可以看出,是主键冲突了。但是我做Product的插入操作时,主键gid是数据库自动写入的,并没有给值啊。经常查询报错信息的主键gid信息,发现它是Categories的主键。那么是怎么回事啊?

.net Core 1.1 开发踩坑_第5张图片
image.png

使用自托管模式再次进行调试,在输出的信息中终于发现了原来是Categories表中执行了“insert”操作。那么就奇怪了,我并没有写它的Add操作啊。经过查询度娘后,发现一篇博文的介绍(http://www.cnblogs.com/CreateMyself/p/6238455.html)。

解决方案

.net Core 1.1 开发踩坑_第6张图片
image.png

你可能感兴趣的:(.net Core 1.1 开发踩坑)