【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语句相比还是不太熟悉,接下来需要多多练习。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java outputstream转为inputstream(java传递流)

    本文转自 https://blog.csdn.net/lmy86263/article/details/60479350在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转换的各种方法,包括JDK原生提供的,还有一些外部依赖提供的。1、InputStream转化为String1.1JDK原生提供方法一:byte[]bytes=newbyt…

    2022年4月16日
    70
  • linux系统休眠唤醒_centos休眠后怎么唤醒

    linux系统休眠唤醒_centos休眠后怎么唤醒背景介绍:睡眠/唤醒是嵌入式Linux非常重要的组成部分,因为优秀的睡眠唤醒机制可以是嵌入式设备尽可能的进入休眠状态,来延长电池的续航时间(这在移动终端消费类电子设备中是非常重要和有意义的!!)。但标准的Linux睡眠唤醒机制有其自身的一些缺陷(所有模块必须同时睡下或者唤醒),在某些情况下,这会导致能耗的白白浪费。因此Android在标准Linux睡眠唤醒的机制上作了新的改动(wake_lock唤…

    2022年9月18日
    0
  • java工程师简历模板下载待遇_项目工程师简历模板

    java工程师简历模板下载待遇_项目工程师简历模板可以到我的知乎主页(更多详细内容等你关注呦):https://www.zhihu.com/people/xing-chen-you-guang-pie-pie-pie有更多更详细的项目视频、文档、软

    2022年8月5日
    2
  • 基于ARM的嵌入式大容量数据存储解决方案「建议收藏」

    基于ARM的嵌入式大容量数据存储解决方案「建议收藏」恒颐成功案例   *  某单位舰载信息黑匣子;   *  消防主机监控与采集终端;应用背景  随着32位嵌入式微处理器的推广使用,越来越多的应用场合需要大容量的数据存储解决方案,传统的基于U盘、硬盘、SD/MMC卡存储方案,虽然也能实现大容量数据存储的功能,但无论是系统体积、成本、功耗、可靠性和易用性等方面都不尽如人意,因此,迫切需要一种能以较低的成本、功耗和体积,实现大容量、高

    2022年10月7日
    0
  • pycharm最新激活码汇总,亲测可用,定期更新(最新序列号破解)[通俗易懂]

    pycharm最新激活码汇总,亲测可用,定期更新(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    55
  • 2020美赛A题解题方法

    2020美赛A题解题方法题目:问题A:向北移动全球海洋温度影响某些海洋生物的栖息地质量。当温度变化太大,它们无法继续繁荣时,这些物种就会迁移到其他更适合它们现在和未来生活和繁殖成功的栖息地。其中一个例子就是美国缅因州的龙虾种群,它们正缓慢地向北迁移到加拿大,那里的海洋温度较低,为它们提供了更合适的栖息地。这种地理种群的转移可能会严重影响依赖海洋生物稳定性的公司的生计。您的团队已被苏格兰北大西洋渔业管理协会聘请为顾问…

    2022年6月1日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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