修改实体框架中实体的属性会导致验证错误

2024-04-02

我试图简单地加载一个实体,修改一个属性,然后将其保存回数据库。

var db = new NewsletterContext();
var newsletter  = db.Newsletters.Find(x => x.ID==newsletterID); 
newsletter.SomeProperty = 5;
db.SaveChanges();

这会导致验证错误,因为时事通讯对象上有一些属性是必需的,但当我执行以下操作时显然未加载Find().

我可以使用Include()对于每个必需的属性,后跟Where():

var db = new NewsletterContext();
var newsletter  = db.Newsletters.Include(x => x.RequiredProp1)
                    .Include(x => x.RequiredProp2).Include(x => x.RequiredProp3)
                    .Where(x => x.ID==newsletterID)
                    .FirstOrDefault(); 
db.SaveChanges();

这不是一个非常优雅的解决方案,如果我向Newsletter目的。

有更好的解决方案吗?


实体框架将在进行验证时禁用延迟加载。因此,如果您对导航属性进行必要的验证,验证将会失败。您可以改为装饰与导航属性相关的标量属性。

public class Foo
{

    [Required]
    public int? RequiredScalarId { get; set; }

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

修改实体框架中实体的属性会导致验证错误 的相关文章

随机推荐

  • 如何从html标签中只获取文本

    我查询了一些数据 结果是这样的 p img src xxx png alt br p p Lorem Ipsum is simply dummy text of the printing and typesetting industry L
  • 如何在 WooCommerce 中获取订单税务详细信息和税率?

    我正在尝试获取税率用于订单插件中的自定义变量 当然 我可以通过以下方式请求大量数据 order gt get 但我找不到获取税率的方法 例如 21 gt 21 有人有想法让这变得简单吗 你将会拥有获取订单税项这会给你一个数组WC Order
  • 循环遍历 XML 文档

    我的方法 if File Exists C config xml System Xml XmlDocument xd new System Xml XmlDocument xd Load C config xml System Xml Xm
  • 在 C# 中使用 PrintSpoolerAPI 函数 SetForm()

    我正在开发一个 Windows 窗体应用程序 我想在其中打印自定义文档 该自定义文档具有自定义尺寸 我必须使用 C 代码设置默认打印页面尺寸 我做了一些谷歌搜索并发现了PrintSpoolerAPI 我找到的代码将使用添加自定义表单 页面A
  • 使用空值上的连接级别使用 pl/sql 分割字符串

    我在 Oracle pl sql 中使用以下代码 版本 Oracle 数据库 11g 版本 11 2 0 1 0 select regexp substr A B C 1 level output from dual connect by
  • 仅为匿名用户缓存 ASP.NET 页面

    有没有一种简单的方法来仅为匿名用户缓存 ASP NET 整个页面 使用表单身份验证 上下文 我正在制作一个网站 其中向匿名用户显示的页面大多是完全静态的 但向登录用户显示的相同页面则不是 当然 我可以通过后面的代码手动完成此操作 但我认为可
  • LinkedHashMap 排序

    正如 LinkedHashMap 的 javadoc 中所指定的 如果将键重新插入到映射中 插入顺序不会受到影响 但在运行下面的程序时 我注意到在更改访问顺序时再次插入相同的键 Map
  • 开源和基于 Web 的 html5 文档查看器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无论屏幕分辨率如何,如何使 javascript css 弹出 div 居中?

    我有以下代码 它在禁用背景的同时打开一个新的弹出窗口 问题是我必须将其定位 使其距顶部 100px 已经通过 CSS dialog 获得 并且位于屏幕中央 无论用户的分辨率是多少
  • 如何只允许某些值作为Java方法的参数?

    我想编写一个仅采用某些参数值的方法 例如 f e 在里面ToastAndroid 中的类 你只能使用Toast LENGTH SHORT or Toast LENGTH LONG作为方法的持续时间makeText Context conte
  • 使用 NSLayoutManager 计算每个字形的帧

    在这个线程上 Core Text 在 iOS 中计算字母框架 https stackoverflow com questions 21443625 core text calculate letter frame in ios 他们能够使用
  • DebugDiag 和 MVC4 没有提供可用的堆栈跟踪

    我刚刚在我们的生产服务器上遇到了高 CPU 问题 并决定在本地练习调试此类情况 以便将来为此做好准备 但是当我尝试调试本地 MVC4 站点时 我没有获得与教程相同的信息堆栈跟踪做 问题 有谁知道是否可以获得更多信息的堆栈跟踪 我希望在某个地
  • MKAnnotation - 地图图钉标注在其他地图图钉后面弹出

    我的地图图钉可以非常密集地填充 因此当选择一个图钉时 标注会弹出 但大部分被所有其他地图图钉遮挡 我可以将地图图钉放在前面 它有一个代表选定的地图图钉 不是点击标注 选择引脚 有什么解决方法的建议吗 如果您使用自定义注释视图 您可以为选定的
  • 具有可变列数的 Infragistics XamDataGrid

    我需要能够支持 XamDataGrid 它在设计时不会有一定数量的列 例如 应用程序将运行 从服务器获取一些数据并创建一些对象 根据服务器的响应 每次运行应用程序时可能会有不同数量的对象 这是我的意思的一个例子 假设我调用某个服务并返回带有
  • 添加依赖后无法合并dex

    我收到错误 错误 任务 app transformDexArchiveWithExternalLibsDexMergerForPaidFreeDebug 执行失败 java lang RuntimeException com android
  • 仅在全日历中允许后台事件发生 eventOverlap

    有没有办法避免事件重叠 就像 fullcalendar 配置中的 eventOverlap false 一样 但另一方面允许背景事件重叠 我想将一些事件作为背景事件渲染到我的日历中 就像信息一样 其他日历中已经有一些事件 但允许我在顶部创建
  • 使用 Rally API 通过迭代获取用户故事

    我不知道如何在 Rally 中获取一个用户故事的所有字段 现在 我需要获取最后 5 次迭代 并计算每次迭代的完成点 我设法通过指定来获取迭代type iteration 但不知道如何获取这些迭代的用户故事 以及如何指定仅完成 我应该和Tas
  • Node.js 作为服务,exec 不起作用

    我正在使用 nssm 将 Node js 项目作为服务运行 当用户单击我的 Nodejs 网站上的按钮时 它应该运行require child process exec cmd c batfile bat function res send
  • CakePHP 分页 - 如何从 url 中删除“page:”以获得更好的 seo/更干净的 URL

    当我使用 CakePHP Paging 时 我得到一个像这样的 url http example com php page 2 我必须在控制器 视图和routes php中更改什么才能创建这样的工作网址 http example com p
  • 修改实体框架中实体的属性会导致验证错误

    我试图简单地加载一个实体 修改一个属性 然后将其保存回数据库 var db new NewsletterContext var newsletter db Newsletters Find x gt x ID newsletterID ne