【发布时间】:2019-10-31 15:46:39
【问题描述】:
如果我这样做
DBcontext.MyTable.Where(x => x.SomeGuid.ToString() == "00000000-0000-0000-0000-1234000001234");
然后加载不是我想要的实体。我想知道,已经加载了哪些实体
NB 我想要一个所有已加载实体的列表,而不仅仅是一个特定的。
评论中的链接问题回答了这个问题的第二部分,所以我现在删除了它
【问题讨论】:
-
你为什么首先想要那个? DbContext 是一个瞬态对象,您知道加载了哪些对象,因为您以与
using(var context=new MyContext())子句相同的方法加载它们。即使在 MVC 控制器中,对象也以相同的操作加载 -
纯调试
-
您是否在调试 EF Core 本身?这是要检查已加载内容的唯一原因。如果需要,可以查看 DbContext.ChangeTracker 并使用ChangeTracker.Entries() 获取跟踪条目列表。
-
如果你真的想要你可以检查DbContext.IDbContextDependencies.StateManager,它本身是an internal class using ,它使用另一个内部类等。这可以通过DI和EF解决核心测试注册他们自己的假状态管理器
标签: entity-framework-core entity-framework-core-3.0