【EF】数据表全部字段更新与部分字段更新

【EF】数据表全部字段更新与部分字段更新【EF】数据表全部字段更新与部分字段更新

大家好,又见面了,我是你们的朋友全栈君。

    在更新数据库的过程中,出现了” 更新条目时出错。有关详细信息,请参见内部异常。“的问题。

    原因是想要更新表中的部分字段,所以只给需要修改的字段进行赋值,但是用的方法是对全部字段更新,这样就出现了异常。


更新一张表中全部字段的代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;">//实例化读者表并赋值
            ta_readerinfo enReader = new ta_readerinfo()
            {

                ReaderID = ReaderModel.ReaderID,
                Name = ReaderModel.Name,
                Roles = ReaderModel.Roles,
                Sex = ReaderModel.Sex,
                Tel = ReaderModel.Tel,
                Email = ReaderModel.Email,
                Grade = ReaderModel.Grade,

                //不需要更新的字段
                //Pwd = "123",
                //Photo = "呵呵",
                //ManagerID = "1",
                //IsEnable = "1",
            };

            //执行更新操作
            this.CurrentDal.Update(enReader);
            //将对数据库的操作保存
            DbSession.SaveChanges();</span>


更新一张表中部分字段的代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;">            //创建映射规则
            Mapper.CreateMap<ReaderViewModel, ta_readerinfo>();
            //进行转换
            ta_readerinfo ReaderList = Mapper.Map<ta_readerinfo>(ReaderModel);
            //需要修改的字段
            string[] proNames = { "Name", "Roles", "Sex", "Tel", "Email", "Grade" };
            //调用更新操作
            this.CurrentDal.Update(ReaderList, a => a.ReaderID == ReaderModel.ReaderID, proNames);
            //更新SaveChanges
            this.DbSession.SaveChanges();</span>


     这里用到了Mapper,所以需要添加AutoMapper的引用。

     初次接触EF,和直接用SQL语句相比还是不太熟悉,接下来需要多多练习。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105733.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JAVA获取服务器上文件路径,java 获取远程服务器目录的路径

    JAVA获取服务器上文件路径,java 获取远程服务器目录的路径java获取远程服务器目录的路径内容精选换一换已将所需升级的鲲鹏性能分析工具的软件包下载到本地。获取软件包后,需要校验软件包,确保与网站上的原始软件包一致,详细步骤请参见软件包校验。获取软件包后,需要校验软件包,确保与网站上的原始软件包一致,详细步骤请参见软件包校验。升级前请确认鲲鹏性能分析工具可以正常使用。升级前请确认安装空间至少保留原工具安装目录的大小加上新版本安装空间(1GB)为加强对系…

  • python创建新数组_python怎么创建数组

    python创建新数组_python怎么创建数组一 直接定义法:1.直接定义matrix=[0,1,2,3]2.间接定义matrix=[0foriinrange(4)]  print(matrix)二 Numpy方法:Numpy内置了从头开始创建数组的函数:zeros(shape)将创建一个用指定形状用0填充的数组。默认的dtype是float64。下面是几种常用的创建方法:#coding=utf-8importnumpyasnp…

  • [硬件驱动] CAN接口

    [硬件驱动] CAN接口CAN接口的介绍:CAN总线可分为:高速CAN,低速CAN,单线CAN。1.在速度方面高速CAN的传输速率在125K~~1Mbps。低速CAN的速率在125Kbps以下,低速CAN具更好的容错性。2.这三种总线之间的最主要区别是物理层。以传输介质和线的数量说,单线CAN只需1条导线,低速容错CAN和高速CAN通过双绞线传输。还有电平的逻辑的区别,定义逻辑为1称作隐性,逻辑为0称作…

  • linux系统docker安装rabbitmq

    linux系统docker安装rabbitmq安装rabbitmq比较简单1.下载镜像dockerpullrabbitmq:managementrabbitmq:management含有web模块下载完成:2.运行镜像启动镜像dockerrun-d–hostnamedev-scrm–namerabbit-eRABBITMQ_DEFAULT_USER=rabbit-eRABBITMQ_DEFAULT_PASS=rabbit-p15672:15672-p5672:5672rabbitmq:m

  • python专业版激活成功教程_pycharm专业版和社区版的区别

    python专业版激活成功教程_pycharm专业版和社区版的区别PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。PyCharm最常用的两个版本就是社区版和专业版,这两个版本区别如下:专业版和社区版的区别除了这两版本之外,还有一个版本就是教育版,这三个有什么区别呢?1.收费不同首先就是三者的收费不同:专业版是收费的,另外两个是免费的。2.功能不同pyCharm专业版是功能最丰富的,与社区版相比,PYc…

  • Yii Framework2.0开发教程(2)使用表单Form

    Yii Framework2.0开发教程(2)使用表单Form

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号