EF Core + sql2005报错 An error occurred while updating the entries. See the inner exception for detail

2023-11-19

问题:将原来.Net4.0+EF+sql2008系统迁到.NetCore + EF + SQL 2005上。在保存数据时出现

“An error occurred while updating the entries. See the inner exception for details”的错误。

迁移后,开发环境是sql2008 但客户那里是sql2005,所以原来的EFCore配置就要进行一些修改。

原因:

1、原sql2008的库支持date类型,sql2005中不支持。

解决方案:需在Context中改成datetime类型。

modelBuilder.Entity<W_WorkFlowApply>(entity =>
{
    //原来的entity.Property(e => e.WfaAddtime).HasColumnType("date");
    entity.Property(e => e.WfaAddtime).HasColumnType("datetime");
});

这个查了好多资料,还有的说是因为EF默认将date类型的字段转为datatime2类型,而sql2005不支持datetime2类型。故需要在配置里明确其类型为sql2005支持的类型datetime。

2、自增列主键的问题。

使用EF进行存表操作时原.Net4.0+EF+sql2008系统无需在声明对象时对 ID (自增列)进行赋值。

如下图:

//Sys_User表 有三个字段 ID(自增列主键)、UerName、PassWord
Sys_User UserModel = new Sys_User();
UserModel.UerName= "SanMao";
UserModel.PassWord= "111111";
db.Sys_User.Add(UserModel);
db.SaveChanges();

但迁移后再这么写就会报错,断点跟踪了一下UserModel 在SaveChanges()前其ID=0,在SaveChanges()后其ID就变成了-21737。

解决方案一:我的解决方案时将ID列改成varchar(50)类型,然后对其使用GUID进行赋值

//Sys_User表 有三个字段 ID(自增列主键)、UerName、PassWord
Sys_User UserModel = new Sys_User();
UserModel.ID = Guid.NewGuid().ToString();
UserModel.UerName= "SanMao";
UserModel.PassWord= "111111";
db.Sys_User.Add(UserModel);
db.SaveChanges();

解决方案二:这是网上的另一种解决方法,即找到Sys_User表在系统中对应的Sys_User.cs  Model文件,在ID字段加上数据注解特性。原文链接:https://blog.csdn.net/zhangpeterx/article/details/95678630

public class Sys_User 
{
    [ScaffoldColumn(false)]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public string UserName{ get; set; }

    public string PassWord{ get; set; }
}

3、批量增加数据的问题。

我的解决方法是在for中进行SaveChanges(),这种方案肯定会影响效率,好在系统中这么处理的数据不多,在可接受的范围内。

UserNameList.ForEach(name=>
{
    Sys_User UserModel = new Sys_User();
    UserModel.ID= Guid.NewGuid().ToString();
    UserModel.UserName = name;
    UserModel.UserID = userID.ToString();
    UserModel.PassWord= "111111";
    db.Sys_UserSetModule.Add(model);
    db.SaveChanges();
});

目前我是尚未找到其他解决方案。欢迎大神抨击我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF Core + sql2005报错 An error occurred while updating the entries. See the inner exception for detail 的相关文章

  • 单独捕获dubbo异常

    一 定义一个rpc异常去继承自己自定义捕获的异常 public class RpcRuntimeException extends BadRequestException implements Serializable public Rpc
  • 用vite命令搭个react移动端项目,实现canvas碰撞效果(按需导入antd-mobile,pxtorem适配)

    前言 最近看见大家都在卷react源码 突然就心慌了 但是自己的操作水平还有待提高 现在看源码也需要循序渐进的 打算还是从写代码慢慢理解功能再去看源码 所以就尝试使用vite这个构建工具进行尝试构建一个react项目 因为是第一次使用 也是
  • matlab和C/C++混合编程--Mex

    最近的项目需要matlab和C的混合编程 经过一番努力终于完成了项目要解决的问题 现在就将Mex的一些经验总结一下 当然只是刚刚开始 以后随着学习的深入继续添加 首先讲讲写Mex的一些常规规定 然后我们会重点关注混合编程中最难解决数据的问题
  • 通过yarn提交作业到spark,运行一段时间后报错。

    加粗样式
  • QT控件之QComboBox(下拉框相关)

    QComboBox提供了下拉列表框的控件 下面简单介绍几个的方法和属性 1 addItems void addItem const QString text const QVariant userData QVariant void add
  • LUA中判断GameObject是否被Destory

    function IsNil uobj return uobj nil or uobj Equals nil end 你懂的 转载于 https www cnblogs com vsirWaiter p 7884249 html
  • vue学习01—安装vue-cli4

    1 安装node js 在官网下载并安装 2 安装vue cli3 如果安装过cli2 此处需要卸载 卸载 命令行输入 npm uninstall vue cli g 安装cli3 命令行输入 npm i g vue cli 在这一步遇到了
  • sharedPreferences

    sharedpreferences 共享参数 也是保存数据的一种方法 通常用于持久化数据 定期更新保存数据 类似ajax的定时刷新 示例代码 主要来源于黑马教程 如下 import java util Timer import java u
  • Sequence Models

    序列模型 如下图 常见的几个序列模型的应用 1 语音识别 2 音乐生产 3 文本情感分类 4 DNA序列分析 5 机器翻译 6 视频运动识别 7 命名实体识别 下图是该博客使用的符号说明 x代表输入序列 y代表输出序列 用右上角尖括号 x
  • pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)

    这关也几乎是一步就能搞定 1 轻松过关 进入本关看到下图的页面 点击球员名字可以下载头像图片 点击之后直接下载了 没有页面跳转 地址栏的url没有变化 右键 查看网页源代码 通过球员名称快速定位到相关代码 类似 a href execdow
  • 虚拟机管理程序、虚拟化和云: 深入剖析 PowerVM 虚拟机管理程序

    预备知识 Power 是没有限制的虚拟化 一些企业打算依靠 PowerVM 虚拟化将多个工作负载整合到较少系统上 从而提高服务器利用率 降低成本 Power VM 为基于 Power Systems 平台的高级 RAS 功能和领先性能为 A
  • 理解line-height和vertical-align

    来源 https www cnblogs com libo web p 15457582 html 行高 line height line height 属性是指文本行基线之间的距离 用于设置多行元素的空间量 如多行文本的间距 对于块级元素
  • 谈谈对Python爬虫的理解

    爬虫也可以称为Python爬虫 不知从何时起 Python这门语言和爬虫就像一对恋人 二者如胶似漆 形影不离 你中有我 我中有你 一提起爬虫 就会想到Python 一说起Python 就会想到人工智能 和爬虫 所以 一般说爬虫的时候 大部分
  • notepad++ 快捷键

    Notepad 绝对是windows下进行程序编辑的神器之一 要更快速的使用以媲美VIM 必须灵活掌握它的快捷键 下面对notepad 默认的快捷键做个整理 其中有颜色的为常用招数 1 文件相关 快捷键 动作定义 Ctrl O 打开文件 C
  • (20200720已解决)_pickle.UnpicklingError: A load persistent id instruction was encountered,

    but no persistent load function was specified 问题描述 如题 提取pickle数据 解决方案 直接解释是因为生成pickle文件的过程中使用了persistent load 但是读取过程中没有提
  • 云原生之使用docker部署mongodb数据库

    云原生之使用docker部署mongodb数据库 一 检查系统版本 二 检查docker状态 三 检查docker版本 四 下载mongodb镜像 五 创建mongodb容器 1 创建数据目录 2 创建mongodb容器 3 查看mongo
  • Python中的sns.set_palette函数是一个非常有用的函数,它可以设置Seaborn库中的调色板。这个函数允许用户设置颜色列表,并将它们应用于所选的...

    Python中的sns set palette函数是一个非常有用的函数 它可以设置Seaborn库中的调色板 这个函数允许用户设置颜色列表 并将它们应用于所选的绘图 在这篇文章中 我将详细介绍sns set palette函数的使用方法 并
  • STM32外设系列—L298N

    文章目录 一 L298N简介 二 L298N电路图 三 L298N使用方法 四 L298N驱动电机实例 4 1 麦克纳姆轮简介 4 2 定时器PWM配置 4 3 智能车行驶控制 五 拓展应用 一 L298N简介 L298N是SGS公司生产的
  • 强化学习 优势函数(Advantage Function)

    目录 什么是优势函数 归一化 激活函数等学习问题 为什么要使用优势函数 常见的优势函数 什么是优势函数 优势函数表达在状态s下 某动作a相对于平均而言的优势 从数量关系来看 就是随机变量相对均值的偏差 使用优势函数是深度强化学习极其重要的一

随机推荐

  • 用汇编语言实现结构体的输入和保存

    COUNT EQU 1 ALL INPUT MACRO STRING NUM FUNCTION MOV DX OFFSET STRING MOV AH 9H INT 21H MOV DI OFFSET INFO NUM MOV AX SIZ
  • 软件工程思考(四)

    Prototyping 在生成产品以前 一般需要进行原型验证 可以得到遇到的困难以及用户体验 需要增加的功能进行加入新的东西 原型验证中 平台选择 需求清晰化以及用户接口这些都是未知的 所以有较高的风险 原型验证中UI设计可以使用纸质或者是
  • 01_2_数字基带传输及其频谱特性

    一 数字基带信号的表示 g t g t g t 是一个基本的脉冲 有不同形状 a n
  • python 播放自定义的语句 MP3文件

    使用python播放自定义文本 比如播放你想说的话 运行以下PY代码 就会在项目路径下产生一个MP3文件 里面循环播放你写自定义语句 from PyQt5 QtCore import QUrl from PyQt5 import QtMul
  • Unikernel不适合生产环境

    最近我犯了个错 在Twitter上语气激昂的问是否该讲讲为什么unikernel不适合用在生产环境 结果响应十分强烈 有的人感觉unikernel走错方向了 在寻找支持这种观点的细节 有的人是unikernel的支持者 也很想知道反对uni
  • R-CNN系列论文综述

    本文首发自 CSDN 上几期我们讲过目标检测 One Stage 的代表 YOLOv3 本来这一期是打算写 SSD One Stage 的另一个代表 的 发现 SSD 其中涉及的知识是从 R CNN Two Stage 来的 故此 这一期我
  • 问题 D: 稀疏矩阵类型判断

    题目描述 输入一个稀疏矩阵 输出其类型 类型包括 上三角 对角线及其右上方的元素非0 其它元素为0 下三角 对角线及其左下方的元素非0 其它元素为0 对称 沿对角线对称的元素非0且相等 空矩阵 所有元素都为0 其它为普通矩阵 输入 输入包括
  • SpringBoot项目搭建并以打jar包方式部署运行

    一 项目搭建 1 去springBoot官网下载demo SpringBoot官网 https start spring io 2 点击Generate Project下载demo并将其以maven方式导入到eclipse中 3 选择要集成
  • axios用headers传参,设置请求头token

    不知道该怎么描述我这个问题 之前有听一个前端经理说 使用http协议的时候要用headers传参 新公司就是使用http协议的 在vue项目中 使用了axios 要根据header里的token判断用户是否登录 如上图 一开始的理解为是像d
  • 前段技术加html+css+JS

    前段技术加html css JS html 负责页面的结构 语义 网页制作语言 不是编程语言 css 负责页面的美化 样式 js 增加交互或特效 HTML基本知识点 HTML含义 html超文本标记语言 通过标签进行语义化描述 超文本 就是
  • No implementation found for int com.baidu.mapsdkplatform.comjni.tools.JNITools.initClass(java.lang.O

    今天又有一个历史项目需要维护 发现百度地图只显示网格 没有图像出来 感觉可能是签名问题 但是下载来的代码中只有那一个签名 所以干脆把百度地图的东西都替换掉 替换完一运行 直接崩溃了 E NativeLoader found libBaidu
  • 【Unity灯光与渲染技术】Global Illumination全局光照

    本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering 同时会加上一点个人实践过程和理解 分割线 这篇文章主要讲全局光照 在看教程的时候就有一个点不是很理解 就是作者开启物体的static这个选项
  • 字母大小写转换(python实现)

    python实现大小写转换主要用lower和upper函数 lower 将字符串中的所有大写字母转化为小写字母 upper 将字符串中的所有小写字母转化为大写字母 s input 输入一个字符串 print s upper 输入 i lov
  • HTML5游戏实战(2):90行代码实现捕鱼达人

    捕鱼达人是一款非常流行的游戏 几年里赚取了数以千万的收入 这里借用它来介绍一下用Gamebuilder CanTK开发游戏的方法 其实赚钱的游戏未必技术就很难 今天我们就仅用90来行代码来实现这个游戏 CanTK Canvas ToolKi
  • MySQL 分区表设计

    MySQL 分区表设计 1 分区表设计方案 当设计 MySQL 分区表时 需要考虑以下几个方面 分区策略 分区字段 分区数量和分区函数 下面是一个详细的示例 展示了如何设计和执行分区表的增删改查操作 设计分区表 考虑一个订单表的例子 我们可
  • 【DP】拔河比赛

    题目 一个学校举行拔河比赛 所有的人被分成了两组 每个人必须 且只能够 在其中的一组 要求两个组的人数相差不能超过1 且两个组内的所有人体重加起来尽可能地接近 输入 输入数据的第1行是一个n 表示参加拔河比赛的总人数 n lt 100 接下
  • 最新实战-基于SSM的自习室预订座位占座管理系统-JAVA.VUE【数据库设计、开题报告】

    功能介绍 项目含有管理员和学生两种角色 座位分类管理 管理员可以管理座位分类信息 可以添加 修改 删除座位分类信息 学生信息管理 管理员可以对学生信息进行查询和修改操作 座位信息管理 管理员可以对座位信息进行修改 查询操作 座位预约管理 管
  • 通过示例学习 JavaScript 运算符 - 逻辑、比较、三元和更多 JS 运算符

    JavaScript 有许多运算符 可用于对值和变量 也称为操作数 执行操作 根据这些 JS 运算符执行的操作类型 我们可以将它们分为七组 目录
  • SeetaFace编译成功(有windows及Android源码)

    声明 由于本人水平有限 所提供的代码 dll so等必然存在很多问题 仅用于学习 不适合工业级使用 请谨慎使用 如果造成损失 责任自负 对齐 这张照片第3个人的特征点检测有点问题 研发人员很快修正了 赞一个 下面是人脸比对 准确率还是可以接
  • EF Core + sql2005报错 An error occurred while updating the entries. See the inner exception for detail

    问题 将原来 Net4 0 EF sql2008系统迁到 NetCore EF SQL 2005上 在保存数据时出现 An error occurred while updating the entries See the inner ex