属性“Id”是对象关键信息的一部分,无法修改

2023-12-01

我正在使用 Entity Framework 4.0 并且有一个我无法弄清楚的愚蠢问题。

我有两张桌子:

  1. Contact:Id(主键)、Value、ContactTypeId(ContactType 的外键)
  2. 联系人类型:ID(主键)、类型(家庭、手机、工作等)

实体框架创建了以下两个实体:

  1. 联系人:ID、值、联系人类型(导航属性)
  2. ContactType:Id、类型、联系人(导航属性)

我使用以下代码来获取联系人并更新该特定联系人的联系人类型:

Contact contact = dbContext.Contacts.Single(c => c.Id == 12345);
contact.ContactType.Id = 3;

抛出以下异常:

The property 'Id' is part of the object's key information and cannot be modified.

看起来很简单!我不明白!


发生此问题的原因是您多次引用同一个对象。这不是限制EF,而是一项安全功能,以确保您不会inserting同一个物体有两个不同的IDs。因此,要实现您想要做的事情,只需创建一个新对象并将新创建的对象添加到database.

** 这个问题经常发生在内部loops。如果您使用的是while or foreach loop,确保新创建的对象位于loop body.

尝试这个:

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

属性“Id”是对象关键信息的一部分,无法修改 的相关文章

随机推荐

  • R h2o 服务器 CURL 错误,有点可重复

    起初我以为这是一个随机问题 但重新运行脚本又发生了 Error in h2o doSafeREST h2oRestApiVersion h2oRestApiVersion urlSuffix urlSuffix Unexpected CUR
  • 如何在我的导航栏中将“nav”元素移动到“navbar-brand”下

    I using Bootstrap 4 and I set navbar brand to the center and all elements to the right side I want to set my nav element
  • 网页抓取视频

    我正在尝试通过下载 Bob s Burgers 的电视剧集来进行概念验证https www watchcartoononline com bobs burgers season 9 episode 3 tweentrepreneurs 我不
  • 使用 Apache POI 在 Excel 中创建条形图

    我正在尝试使用 Apache POI 在 XLSX 电子表格中创建条形图 但 Excel 一直提示内容有问题 并在我尝试打开文件时删除图表 这是我想要做的完整代码 public static void createBarChart Work
  • 如何允许我网站上的访问者在他们的 Facebook 新闻源上分享我的照片?

    如何允许我网站上的访问者在他们的 Facebook 墙 新闻源上分享我的照片 我看到 Facebook 有一个 分享 或 喜欢 选项 但似乎分享了整个页面 我希望每张图片旁边都有一个 Facebook 小图标 当他们单击它时 该特定图像只会
  • Android 5 Lollipop 中通知栏图标变白

    我有一个显示自定义通知的应用程序 问题是 在 Android 5 中运行时 通知栏中的小图标显示为白色 我怎样才能解决这个问题 接受的答案并不 完全 正确 当然 它使通知图标以颜色显示 但这样做有一个很大的缺点 将目标 SDK 设置为低于
  • Facebook-connect 提供重定向循环

    拜托 我需要帮助 我处理这个问题1个月了 我想使用 PHP 和 php sdk 3 1 1 实现 facebook 连接登录到我的网站 简而言之 我的代码可以离线工作 在本地主机上 但不能在线工作 这会导致 重定向循环太多 在 Chrome
  • 如何很好地处理[:-0]切片?

    在实现自相关函数时 我有一个像这样的术语 for k in range start N c k np sum f k f k N k 现在一切正常如果start 1但我想很好地处理开始0没有条件的情况 显然它不起作用 因为f 0 f 0 并
  • Linux 内核中哪里可以找到 TCP 数据(HTTP 下)?

    我正在尝试使用Linux内核中的TCP从HTTP流中读取数据 我能够从中获取大部分数据skb buff here 但是 如果服务器在没有请求的情况下将数据推送到客户端 则数据不会复制到用户空间 这样我就找不到它了 使用 Wireshark
  • 自定义订单排序

    您好 我想根据值 关键 高 中 低 对整个 C 列进行排序 我正在启用宏的工作表上运行此代码 这是我的代码 Sub run Range C C Sort Key1 Range C1 SortOn xlSortOnValues Order x
  • 如何在SSIS控制流任务中创建临时表,然后在数据流任务中使用它?

    我有一个控制流 我在其中使用 T SQL 命令创建临时数据库和表 当我添加数据流时 我想查询该表 但我不能 因为该表不存在可从中获取信息 当我尝试时 我收到有关登录的错误 因为数据库尚不存在 我有延迟验证为真 如果我手动创建数据库和表 然后
  • 使用mysqli_stmt_bind_result时在哪一行检查取数据是否成功?

    我需要向网站访问者表明 如果他对我的数据库进行查询在技术上失败 就会出现问题 想要让 php 代码回显 抱歉 出了问题 如果由于某种原因数据获取失败 以下是我试图实现这一目标的一些方法 3 个样品 它们会导致无休止的循环 从而使我的浏览器崩
  • 使用 Windows.Web.Http.HttpClient 类修补异步请求

    我需要做一个PATCH请求与Windows Web Http HttpClient类 并且没有关于如何执行此操作的官方文档 我怎样才能做到这一点 我找到了如何进行 定制 PATCH与上一个请求System Net Http HttpClie
  • 如何在更改属性后在设计时刷新 winform 自定义控件

    假设我创建了一个嵌入轨迹栏的自定义控件 我还为自定义控件创建了方向属性 当我将自定义控件放在窗体上时 默认情况下它将是水平的 然后我将其设置为垂直 轨迹栏应在设计时刷新为垂直 怎么办呢 我想你应该打电话Refresh 更改值后 public
  • Django cors 标头和服务器错误

    我正在尝试使用 django cors headers 将 COR 添加到我的服务器 但是当我加载页面时 我在服务器上收到此错误 ImproperlyConfigured Error importing module corsheaders
  • jqGrid 没有数据 - 如何设置更突出的“无数据”消息?

    默认情况下 当没有数据时 jqGrid显示消息 No records to view 在寻呼机内 我的网格使用顶部寻呼机 问题是 该消息很容易被错过 我想让网格在顶部标题下方显示消息 如果有任何数据 则在行显示的同一位置 在里面体层 如定义
  • 如何在heroku上为django应用程序安装ffmpeg?

    我想使用 ffmpeg 从视频中提取帧以将其用作海报 这是我第一次部署应用程序 更不用说在heroku上 所以我不知道如何在服务器上安装ffmpeg 我发现了这个 ffmpeg 版本并附有将其 供应商 到我的应用程序中的说明 然后调整我的应
  • Node.js 从网络获取图像并使用 Base64 进行编码

    我正在尝试从网络获取图像并使用 base64 对其进行编码 到目前为止我所拥有的是这样的 var request require request var BufferList require bufferlist BufferList bl
  • java arraylist 对所有元素求和

    如果我有 ArrayList
  • 属性“Id”是对象关键信息的一部分,无法修改

    我正在使用 Entity Framework 4 0 并且有一个我无法弄清楚的愚蠢问题 我有两张桌子 Contact Id 主键 Value ContactTypeId ContactType 的外键 联系人类型 ID 主键 类型 家庭 手