如何生成包含非托管对象的 ObjectSet 副本?

发布于 2024-10-13 02:53:53 字数 199 浏览 2 评论 0原文

我想获取 ObjectSet 的所有数据(类似于 getAllProducts()),但该数据只能读取,因此如果有人使用从该集合中获取的对象,他只会修改集合中的对象,而不修改 ObjectContext 管理的对象或持久化引擎中的数据。

我读到分离会停止上下文以维护跟踪信息。另外,我了解到分离会消耗大量系统资源。

我能做些什么?我想要一份收藏的副本。

I want to get all the data of an ObjectSet (something like getAllProducts()) but this data should only be read, so if somebody uses an object taken from that collection, he modifies only the objects on the collection and not ObjectContext managed objecs or data at persistence engine.

I've read that detach stops the context to maintain tracking info. Also, I've read that detaching can consume a lot of system resources.

What can I do? I want a copy of a collection.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鼻尖触碰 2024-10-20 02:53:53

您是对的 - ObjectContext.Detach 从 ObjectStateManager 中删除对象。这实际上减少了内存的使用量。

分离对象时需要注意以下事项:

  • 分离仅影响传递给该方法的特定对象。如果要分离的对象在对象上下文中具有相关对象,则不会分离这些对象。
  • 在独立关联中,不维护分离对象的关系信息。
  • 分离对象时,不会维护对象状态信息。这包括跟踪的更改和临时键值。
  • 分离对象不会影响数据源中的数据。
  • 在分离操作期间,不会强制执行标识关系中的级联删除指令和引用约束。

有关详细信息,请参阅此处

布莱恩

You are correct - ObjectContext.Detach removes the object from the ObjectStateManager. This actually REDUCES the amount of memory used.

The following considerations apply when detaching objects:

  • Detach only affects the specific object passed to the method. If the object being detached has related objects in the object context, those objects are not detached.
  • In an independent association, the relationship information is not maintained for a detached object.
  • Object state information is not maintained when an object is detached. This includes tracked changes and temporary key values.
  • Detaching objects does not affect data in the data source.
  • Cascade delete directives and referential constraints in an identifying relationship are not enforced during a detach operation.

See here for more info.

Brian

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文