实体框架分离一个实体,相关实体消失

2023-11-29

当我使用实体框架时,我想查询上下文中的记录并将其添加到具有相同架构的另一个上下文中,查询出记录后,我将其与上下文分离,但相关实体都消失了,是吗?有什么办法解决吗?

提前致谢!


这是“设计使然”。 EF 只能一一分离实体,但同时 EF 不支持由附加实体和分离实体组成的对象图。因此,当您分离实体时,它将破坏与附加对象图其余部分的所有关系。目前不支持分离整个对象图,但您可以在以下位置投票支持此功能数据用户声音.

作为解决方法,您可以关闭上下文上的延迟加载,使用 @CodeWarrior 描述的预先加载来准确加载您需要传递到其他上下文的数据。加载数据后,将它们序列化为流式传输,并立即将它们反序列化为对象图的新实例。这是如何对实体图进行深度克隆的方法,该实体图是分离的,但所有关系都完好无损(需要关闭延迟加载,否则序列化也会加载所有其他导航属性,这可能会导致比预期大得多的对象图)。唯一的要求是您的实体必须可以由您选择的序列化器进行序列化(请注意循环引用,这通常需要对实体进行一些特殊处理或附加属性)。

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

实体框架分离一个实体,相关实体消失 的相关文章

随机推荐

  • 正确地在图像上绘图

    我正在创建一个小型图像编辑器 现在我试图让用户有机会通过拖动鼠标在图像上绘图 就像 MS Paint 中的铅笔工具一样 我遇到了一些困难 因为当我移动光标太快时 应用程序无法绘制所有应该着色的像素 只有一小部分数字被正确着色 我尝试了两种解
  • 使用 jQuery Ajax 删除 mySQL 表行

    我正在尝试做到这一点 因此当我单击跨度图标时 它会将article id发送到我的php sql页面 该页面会删除我的文章 我使用jQuery Ajax发送id id在jQuery端发送正常 但之后http post 请求已完成 我的表行仍
  • 输入对于数组来说太大

    我有一个小问题 我只是想知道 include
  • Azure Web 应用程序从 AAD 身份验证注销

    我无法从以 Azure Active Directory 作为身份验证提供程序的简单 Azure Web 应用程序注销 用户使用显示的 AAD 登录页面登录站点here 但我正在努力找出如何注销用户 我尝试使用各种未记录的注销网址 例如 h
  • Visual Studio 不将 SVG 图像显示为背景

    我有一个带有 html 文件 Html 5 的 asp net 项目 我正在尝试使用 CSS 3 将 SVG 设置为我的 body 标签的背景 我的文件如下 在我的 Style css 中 当我双击并打开 html 文件时 我可以看到主体充
  • 如何编写一个捕获所有异常的“try”/“ except”块?

    我怎样才能写一个try except捕获所有异常的块 除了光秃秃的except 子句 正如其他人所说你不应该使用 你可以简单地抓住Exception import traceback import logging try whatever
  • 实现引用类型和非引用类型的特征会导致实现冲突

    我正在尝试创建一种特征 并为所有非引用类型提供一种实现 为所有引用类型提供另一种实现 这无法编译 trait Foo impl
  • 我应该如何在 ACL 中构建资源树?

    我想使用 PHP 和 Zend ACL 创建一个极其灵活的权限系统 我希望能够向特定类型的所有对象以及这些对象的实例分配权限 如果查询对象的特定实例并且资源树中不存在该实例 则可以使用 通用 对象的权限集 我的问题是 这需要嵌套 并且我无法
  • Internet Explorer z 索引错误?

    如何将一个元素重叠到 Internet Explorer 中相对定位的另一个元素上 Z index 不起作用 它总是出现在相对定位元素的后面 看起来我在开玩笑 但我不是 myLinkCssClass background url
  • Linux x86_64 上的 Cassandra 启动错误 1.2.6

    尝试从最新的稳定版本在 Linux 上安装 cassandra http cassandra apache org download 1 2 6 我已修改 cassndra yaml 以指向自定义目录而不是 var 因为我没有 var 的写
  • 构建 android studio 项目时运行 lint

    我希望在使用 android studio 构建项目时能够运行 lint 任务 以确保遵循 lint 规则 我尝试过使用任务依赖项 但没有成功 我的 TeamCity 构建服务器使用运行 lint 任务的构建任务 因此效果很好 然而 and
  • 从没有默认构造函数的虚拟基派生类

    我正在为我正在开发的 C 应用程序编写一个小的异常类层次结构 并且我无法间接派生std runtime error 这是与我迄今为止编写的代码类似的代码 class RuntimeException public virtual boost
  • 如何使用 Vite 构建多个包,类似于 Webpack 中的多编译器模式(多配置)

    我有一个应用程序 它有一个主 index html 和 main js 但也有外部脚本 库 从 main js 内部以编程方式注入到 index html 中 所有这些脚本 库 的构建方式都不同 因为它们需要不同的别名 插件 加载器和文件夹
  • 是否可以抓取 ASP.NET 页面?

    有没有办法抓取一些使用 doPostBack 作为事件调用的 ASP NET 页面 Example 第1页 aspx 包含 1 个重定向到 Page2 aspx 的 LinkBut ton LinkBut ton Click 事件的隐藏代码
  • 如何在使用 Binding.scala 将元素加载到 dom 后执行一些 init

    dom def chart show Var Boolean if show bind
  • 向下滚动时淡入,向上滚动时淡出 - 基于窗口中的元素位置

    我试图让一系列元素在窗口中完全可见时在向下滚动时淡入 如果我继续向下滚动 我不希望它们淡出 但如果我向上滚动 我确实希望它们淡出 这是我发现的最接近的jsfiddle http jsfiddle net tcloninger e5qaD d
  • 在 JSP/Servlet 中管理文件上传

    又是一个非常初学者的问题 但我在这里 我想使用 servlet 或类似工具将上传的文件 从 html 文件选择 复制到永久位置 这就是我需要对文件执行的所有操作 我目前正在使用 Apache Commons FileUpload 和 IO
  • (jQuery Highchart) 有没有办法将额外的自定义数据放入工具提示框中?

    我想添加额外的custom工具提示框中的统计数据行 出现在鼠标悬停上方 据我所知 它仅显示名为的对象数组内的数据series and tooltip 我只是想放入更多自定义数据 放入工具提示框中 每个工具提示都有单独的值 不常见 例如 第
  • 电池历史记录无法找到结束时间android

    我正在尝试使用 Battery Historian Pythonscript从 GitHub 分析电池使用情况 但每次使用脚本生成的 html 显示 找不到结束时间 我正在按照步骤表操作here 这是一个示例batterystats txt
  • 实体框架分离一个实体,相关实体消失

    当我使用实体框架时 我想查询上下文中的记录并将其添加到具有相同架构的另一个上下文中 查询出记录后 我将其与上下文分离 但相关实体都消失了 是吗 有什么办法解决吗 提前致谢 这是 设计使然 EF 只能一一分离实体 但同时 EF 不支持由附加实