gpt4 book ai didi

entity-framework - "Entity Tracked by Context"在 Entity Framework 中是什么意思

转载 作者:行者123 更新时间:2023-12-04 08:30:31 26 4
gpt4 key购买 nike

我正在阅读这个 E.F. 团队博客的这个系列 http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-1-introduction-and-model.aspx

在很多地方我都看到了这个术语“Entity Tracked by Context”,特别是在这一部分 http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx (第四部分)

我的问题是

  1. “按上下文跟踪的实体”是什么意思?

  2. 是为每个请求使用相同的上下文还是为每个请求创建新的上下文(我正在使用 E.F. for Asp.Net MVC APP)

  3. 跟踪每个实体(已加载)一定会在服务器上增加一些内存开销,是吗??

最佳答案

“实体被上下文跟踪”意味着上下文知道实体,它知道实体的状态和对实体所做的更改。上下文只能与跟踪的实体一起使用。如果您调用保存更改,则只有被跟踪实体的更改才会保存到数据库中。 Tracked 和 Attached 可以视为同义词。

在 EF 中,我们通常谈论附加实体和分离实体。附加实体由上下文跟踪。如果您从数据库加载实体(除非您手动让 EF 不跟踪该实体)或者如果您调用 Attach,实体将被附加或 Add (DbContext API)/AddObject (ObjectContext API) 实体。您可以通过调用 Detach 强制实体与上下文分离(ObjectContext API)或将状态设置为 Detached (数据库上下文 API)。如果您只是在代码中像创建任何其他类一样创建实体,则在您调用 Attach 之前,它被视为分离的

New context is always created for each request - Web 应用程序与分离的实体一起工作。这也将解决内存问题。如果您分离所有要以某种状态(如 session )存储的实体,并且如果您在每个请求中正确处理上下文,您将释放内存。

关于entity-framework - "Entity Tracked by Context"在 Entity Framework 中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com