实体框架:按上下文跟踪实体

时间:2017-07-02 22:05:47

标签: frameworks entity dbcontext

我正在阅读有关Entity框架和Attach方法的Microsoft文档,我复制了以下需要帮助的行:

“如果您知道某个实体已存在于数据库中,但当前未被上下文跟踪,......” 现在我有一些问题:在什么情况下,实体可能无法被上下文跟踪?实际上,当我们说“跟踪”时它意味着什么? 谢谢

1 个答案:

答案 0 :(得分:0)

  

在什么情况下,实体可能无法被上下文跟踪?

当您在LINQ中放置AsNoTracking()时,它将不会被跟踪。 AsNoTracking()是我们用来提高查询性能的方法之一。如果您使用AsNoTracking(),您将获得显着的性能。 有时您可能希望从查询中获取实体,但不要让上下文跟踪这些实体。在只读方案中查询大量实体时,这可能会带来更好的性能。请参阅Microsoft官方文档(https://msdn.microsoft.com/en-us/data/jj556203

  

实际上,当我们说"追踪" ?

实体框架检查您是否对数据进行了任何更改并保存。实体框架将有一个跟踪机制为您处理。这是一篇微软文章,讨论何时使用track以及何时不进行trak。 https://docs.microsoft.com/en-us/ef/core/querying/tracking