ABP理论学习总目录

一步一步使用ABP框架搭建正式项目系列教程

ABP之Module-Zero学习目录


本篇目录

问题

问题的是在下面这种情况下出现的:

我在使用CodeFirst更新了数据库后,然后数据库中产生数据表了,几个表中也都有数据。问题的主要原因是跟AbpUsers表有关的。

一开始AbpUsers表的数据是这样的:

我直接删除了AbpUsers表中的数据,然后想重新运行一下种子方法,结果再次生成了和之前一样的数据,但是由于Id是自增长的,Id分别变成了3和4。最关键的,是这个表中有个LastModifierUserId字段,该字段保存的是上次登录系统的用户Id。

第二次更新数据库之后,再次登录系统时报错了,详细信息如下:

{"UPDATE 语句与 FOREIGN KEY SAME TABLE 约束"FK_dbo.AbpUsers_dbo.AbpUsers_LastModifierUserId"冲突。该冲突发生于数据库"QrCodeCMSMZ",表"dbo.AbpUsers", column 'Id'。\r\n语句已终止。"}

原因

从提示的错误只能看出“更新数据库时与AbpUsers表的LastModifierUserId字段发生了冲突”,再也得不到其他信息了。

最终,我发现的原因是用户登录时都会将UserId保存到Cookie中,然后再次登录时会将Cookie中的UserId更新到数据库中。由于我之前的UserId是2,保存到Cookie中,然后再次登录时用2更新数据库,但是此时数据库中已经没有UserId为2的用户了,所以就发生了冲突的错误。

本人用的ABP版本是v0.7.5.0。

解决办法

解决办法就是清除Cookie。

在Chrome浏览器中清除Cookie的方法如下:

F12进入开发者工具,选择Resources选项卡,选择Cookies,点击选择对应的域名,右键选择Clear即可清除该站点下的所有Cookie。

使用ABP时报错“UPDATE 语句与 FOREIGN KEY SAME TABLE 约束"FK_dbo.AbpUsers_dbo.AbpUsers_LastModifierUserId"冲突”的解决办法的更多相关文章

  1. Android 调用.so包时报错:No implementation found for native Lxxx, java.lang.UnsatisfiedLinkError: XXX时的解决办法(转)

    问题就是在调用自己同事写的.so包时,怎么也掉不通,程序一直报错退出,错误内容就是: 1 No implementation found for native Lxxx, 2 Java.lang.Un ...

  2. python 启动时报错无法正常启动(0xc000007b)请单击“确定”关闭应用程序的解决办法

    这是一个自己非常傻逼的问题,但是还是想记录下来 晚上安装python,不管是命令提示符中运行还是python直接打开,都提示报错 各种百度,各种查找排除以后,皆不能解决错误 最后发现:特么64位系统下 ...

  3. Spring Boot连接DB2查询结果时报错“java.lang.AbstractMethodError: com.ibm.db2.jcc.t4.b.isValid(I)Z”的解决办法

    关于在maven项目中如何添加DB2的坐标的详细,见:https://www.cnblogs.com/zifeiy/p/7918554.html Spring Boot项目中的application. ...

  4. Gradle 同步时报错,Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha8的解决方法

    Error:Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha8. 原因: SDK 中可能是没有安装 ...

  5. 将win平台上的mysql数据复制到linux上报错Can't write; duplicate key in table

    将win平台上的mysql数据复制到linux上报错Can't write; duplicate key in table xxx 新年新气象,果然在新年的第一天就遇到了一个大坑,项目在win上跑的没 ...

  6. FOREIGN KEY 外键约束; UNIQUE和PRIMARY KEY 主键约束、CREATE INDEX建立索引的使用

    1)foreign key 是个约束,意思是说如果你给A字段设置了外键约束,以后你要往A字段插入数据,这个数据一定是要在foreign key 后面跟的那个字段中存在的值.这个的意义就是约束了数据的完 ...

  7. 利用powerdesigner创建表模型后导出sql语句方法,以及报错 Generation aborted due to errors detected during the verification of the model.的解决办法

    今天用powerdesigner建了表模型,下面先说一下导出sql语句的步骤. 1.选项 2. 然后就报错了,下面说解决办法,很简单. 你没看错,把模型检查的√去掉就行了~~ 导出表名不带双引号的设置 ...

  8. sql数据库删除表的外键约束(INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX)

    使用如下SQL语句查询出表中外键约束名称: 1 select name 2 from sys.foreign_key_columns f join sys.objects o on f.constra ...

  9. 【python】sql语句插入中内容同时包含单引号和双引号的解决办法

    在python中调用MySQLdb模块插入数据信息,假设待输入信息data为: Hello'World"! 其中同时包含了单引号和双引号 一般插入语句为 sql = "insert ...

随机推荐

  1. tinymce整合struts2使用

    在提交之前记得 instance.post(); 这个应付老师检查还是可以的,但是很详细的怎么具体使用,还是要去看官方文档. <%@ page language="java" ...

  2. NC nc5.x报表设置合计行是否显示

    首先要先继承UI类 /** * 设置合计行是否显示 */ public TotalsReportUI() { super(); getReportBase().getBodyPanel().setTo ...

  3. ASP.NET MVC+Entity Framework 访问数据库

    Entity Framework 4.1支持代码优先(code first)编程模式:即可以先创建模型类,然后通过配置在EF4.1下动态生成数据库. 下面演示两种情形: 1.代码优先模式下,asp.n ...

  4. REST有状态与无状态的理解

    1. 什么是REST? REST(REpresentation State Transfer)表述性状态传递,是一种软件架构风格,是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可 ...

  5. oracle 创建用户和imp指定表空间

    创建用户: 1,sqlplus sys/pwd as sysdba; 2, create user username identified by password; 3, grant dba,conn ...

  6. 1154. Easy sort

    #include<iostream>#include<cmath>#include<iomanip>#include<algorithm>using n ...

  7. 用户行为数据采集核心思维(APP、web数据采集/埋点)

    关于数据采集(也就是所谓的埋点),有很多中形式,或者说方法.所有的数据采集都时围绕一个核心的三个点来做区别的处理. 数据采集核心思维三个点: 1.对象: 要采集谁,一个页面.一个按钮,页面或者按钮,就 ...

  8. LinkList(JAVA版,contain rear)

    //含有rear,尾插时时O(1)的复杂度package linearList;//凡是实现后插后删都比较容易,尽量向着这个方向转换public  class linearList {      cl ...

  9. Swift基础语法(五)枚举、结构体与类的区别

    swift中的结构体值可以是整型.浮点型.字符串.字符.元祖,如果不赋值默认为整型且从0开始计数,如果为整型枚举且要求不是从0开始只需指定枚举的第一个值以后的值自动依次加1 引用方式也与oc有所出入 ...

  10. php怎么解决超链接中的中文参数转码问题?

    如题,我需要通过前端的网页传递一个中文参数(如:电脑)给后端的PHP文件,传递方式是通过超链接 "index.php/search/keyword/电脑" ,很明显的中文在传递过程 ...