Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体框架SaveChanges缺陷

实体框架SaveChanges缺陷
EN

Stack Overflow用户
提问于 2014-09-18 21:49:58
回答 2查看 747关注 0票数 0

我不太确定这是不是个窃听器,但在我看来很像。我首先使用实体框架6.1.1代码,我有以下类:

代码语言:javascript
运行
AI代码解释
复制
public class User
{
    public int Id { get; set; }
    [Required]
    [MaxLength(20)]
    public string Username { get; set; }
    [Required]
    [MaxLength(200)]
    public string Password { get; set; }
    [Required]
    public virtual Country Country { get; set; }

}

public class Country
{
    [Key]
    public int Id { get; set; }
    [Required]
    [MaxLength(3)]
    public string CountryCode { get; set; }
    [Required]
    [MaxLength(20)]
    public string CountryName { get; set; }
}

当我试图用以下代码更新用户密码时,会出现一个错误:

代码语言:javascript
运行
AI代码解释
复制
User _user = db.Users.Find(Id);
_user.Password = Password;
db.Entry(_user).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();

错误:一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。验证错误是:需要国家字段“}

关键是,如果我与属性_user.Country.Id进行任何交互,它就能工作。如下所示:

代码语言:javascript
运行
AI代码解释
复制
User _user = db.Users.Find(Id);
_user.Password = Password;
Console.Write(_user.Country.Id.ToString());
db.Entry(_user).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();

知道这是个已知的bug还是我做错了什么吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-18 22:18:50

您已经用独立关联(User上有CountryId属性)和Required属性配置了实体,这意味着Country属性需要有一个值。

这段代码不会加载Country,因为它加载了延迟加载。

代码语言:javascript
运行
AI代码解释
复制
User _user = db.Users.Find(Id);

除非你做了类似的事。

代码语言:javascript
运行
AI代码解释
复制
var country = _user.Country; // this will load the Country

或者,您可以使用急切加载与主查询一起加载Country

代码语言:javascript
运行
AI代码解释
复制
User _user = db.Users.Include(x => x.Country).FirstOrDefault(x => x.Id == Id);

提示:

  • 使用_user标记EntityState.Modified并不是必要的,因为它是一个代理,更改跟踪器将知道实体是否会被修改。
票数 0
EN

Stack Overflow用户

发布于 2014-09-18 22:07:14

当我使用实体框架时,我从未明确地设置过状态。如果删除行db.Entry(_user).State = System.Data.Entity.EntityState.Modified;,您的代码是否仍能工作并将数据保存到数据库中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25927188

复制
相关文章
Rafy 领域实体框架简介
按照最新的功能,更新了最新版的《Rafy 领域实体框架的介绍》,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架。 与一般的 ORM 框架不同的是,它不只关注于一般性的面向对象实体与关系数据库的映射,而是更关注于富领域模型(聚合实体)与关系数据库的映射。使得开发者可以非常方便地使用富领域模型的同时,配备强大的实体属性设计、查询功能,并兼顾了极高的开发效率。 该框架可脱离 Rafy 框架其它组件独立运行,同时集领域驱动设计、面向服务架构、模型驱动架构、产
用户1172223
2018/01/30
1.5K0
ADO.NET 实体框架概述
随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布。ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式,并且有利于数据的持久
张善友
2018/01/30
1.5K0
ADO.NET 实体框架概述
Rafy 领域实体框架 - 树型实体功能(自关联表)
在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。例如,分类信息、组织架构中的部门、文件夹信息等,都是不
用户1172223
2018/01/29
1.7K0
Rafy 领域实体框架 - 树型实体功能(自关联表)
开源实体映射框架EmitMapper介绍
EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/。
跟着阿笨一起玩NET
2018/09/20
1.4K0
缺陷和缺陷报告_质量缺陷报告
①软件未实现产品说明书要求的功能 ②软件出现了产品说明书指明不该出现的功能 ③软件实现了产品说明书未提到的功能 ④软件未实现产品说明书虽未明确提及但应该实现的目标 ⑤软件难以理解、不易使用、运行缓慢或者(从测试角度看)最终用户会认为不好
全栈程序员站长
2022/10/02
6720
缺陷和缺陷报告_质量缺陷报告
【数据架构】SOGAF 通用实体框架 (CoE)
Salesforce 运营、治理和架构框架 (SOGAF) 将 MIT-CISR 企业架构框架应用于 Salesforce 实施和程序。 介绍 为共同实体(即卓越中心)制定一个明确的定义是很棘手的。转换程序中的通用实体 (CoE) 有多种名称: “卓越中心”、“C4E”、“专业中心”、“专家网络” 术语“设计授权”或“平台授权”也用于通用实体,这会造成一些混淆 不同的描述会导致不同的期望——当没有得到满足时会感到沮丧 此类问题在难以确定是转型、能力还是最佳实践中心的实体中很常见 共同实体也可以扮演任意数
架构师研究会
2022/04/19
1.5K0
【数据架构】SOGAF 通用实体框架 (CoE)
Rafy 框架 - 大批量导入实体
某些场景下,开发者希望能够大批量地把实体的数据导入到数据库中。虽然使用实体仓库保存实体列表非常方便,但是其内部实现机制是一条一条的保存到数据库,当实体的个数较多时,效率就会很低。所以 Rafy 设计了批量导入插件程序,其内部使用 ADO.NET 及 ODP.NET 中的批量导入机制来把大量数据一次性导入到数据库中。 使用方法 步骤 由于批量导入功能是一个额外的程序集,所以在使用该功能时,需要先使用 NuGet 引用最新版本的 Rafy.Domain.ORM.BatchSubmit 程序集。 如果准备导入
用户1172223
2018/01/29
1.4K0
信息安全技术 实体鉴别保障框架
本文是学习信息安全技术 实体鉴别保障框架. 下载地址 http://github5.com/view/1676而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
用户10293610
2023/01/07
8120
缺陷管理之缺陷分析篇
  作为测试人员,测试报告和质量报告是我们的主要工作成果之一,那么这两份报告是怎么得出结论的呢?主要是通过对软件缺陷的分析。缺陷作为测试准出的重要元素,在整个软件周期中占据着很大的比重,一个测试团队乃至每个测试人员都应该重视缺陷的管理及分析,通过对现有缺陷的分析不仅能够判断当前软件的质量,而且经过大量的数据积累,还能够预测未来项目的质量影响因素,便于团队提前制定改进方向,对产品的质量不断地改进和完善。
顾翔
2020/11/03
1.6K0
缺陷管理之缺陷分析篇
缺陷报告总结_缺陷报告要素
缺陷的分类 严重程度:严重一般、次要、轻微、 优先级:立即解决、高级优先、正常排队、低优先级 种类:界面、功能、安全、兼容、性能 阶段:需求、架构、设计、编码、测试
全栈程序员站长
2022/09/30
4900
缺陷报告总结_缺陷报告要素
【自然框架】之 “表单控件”与“实体类”
      对于简单的添加、修改,也就是没有什么业务逻辑的那种,表单控件的工作步骤是这样的,以添加数据为例。这个不用写什么代码,点点鼠标就可以搞定了。       但是对于复杂的业务逻辑的需求,就不能
用户1174620
2018/02/26
9000
【自然框架】之 “表单控件”与“实体类”
Rafy 领域实体框架 - 公司内部培训视频
本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架。所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看。现在把视频放到园里来分享下,有兴趣的朋友可以看看,有什么问题可以进 Rafy QQ 群询问。 关于 Rafy 开源框架的详细介绍:《Rafy 领域实体框架 2.22.2067 发布!》。 如何下载并使用框架:《使用 NuGet 下载最新的 Rafy 框架及文档》。 本次培训一共有 7 个视频: 1.老系统架构讲解、新系统架构思想简介 2.新架构、开发流程介绍
用户1172223
2018/01/29
9490
Facebook 开源 Golang 实体框架 Ent 现已支持 TiDB
对于后端开发者来说,一款好用的框架能够大大提升应用的开发效率。为了降低开发者使用 TiDB 的门槛,方便开发者快速连接到 TiDB,我们也在和合作伙伴一起,逐步完善面向主流开发语言和框架的连接支持。
PingCAP
2022/03/25
8460
Hibernate框架学习之注解映射实体类
     前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识。然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射
Single
2018/01/04
3.3K0
Hibernate框架学习之注解映射实体类
Rafy 领域实体框架演示(2) - 新功能展示
本文的演示需要先完成上一篇文章中的演示:《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》。在完成改造传统的三层系统之后,本文将讲解使用 Rafy 实体框架后带来的一些常用功能。 数据库自
用户1172223
2018/01/30
9560
Rafy 领域实体框架演示(2) - 新功能展示
nodejs ORM框架sequelize.js实体常用配置
请输入图片描述 const sequelize = require('../db/sequelize'); const Sequelize = require('sequelize'); const User = sequelize.define('user', { id: { type: Sequelize.INTEGER, field: 'id', primaryKey: true, autoIncrement: true }, username: Seque
fastmock
2022/07/13
1.6K0
EntityFramework数据持久化复习资料6、EntityFramework引入
EntityFramework数据持久化复习资料3、EntityFramework引入
红目香薰
2023/03/27
5660
EntityFramework数据持久化复习资料6、EntityFramework引入
EF简介
EF:EF是 asp.net的一套ORM框架. ORM: 广义上:ORM指的是面向对象的模型和关系型数据库的数据库之间的相互转换; 狭义上:ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟
郑小超.
2018/01/24
1.5K0
EF简介
关于缺陷报告_登录模块缺陷报告
书写清晰、完整的缺陷报告是对保证缺陷正确处理的最佳手段。 它也减少了工程师以及其它质量保证人员的后续工作。为了书写更优良的缺陷报告,需要遵守“5C”准则:
全栈程序员站长
2022/09/30
5760
内核net_device设备框架的一个缺陷
前几天在看Linux内核源码时,发现一个net_device设备框架的一个问题,以至于upstream的内核源码中,至少有12个设备驱动和虚拟设备存在内存泄漏的风险。
glinuxer
2019/04/10
1.8K0
内核net_device设备框架的一个缺陷

相似问题

实体框架核心缺陷?SaveChanges抛出选择

10

实体框架缺陷?

11

实体框架SaveChanges() bug?

13

实体框架- DbContext SaveChanges()

13

实体框架SaveChanges问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档