C# 实体框架-\处理后的objectTypeCount
在我的网站中,我有一个ObjectContextStorage,它将所有ObjectContext保存在其中。http请求完成后,我丢弃此存储,将其从HttpContext.Current.Items中删除,并在此存储中处置ObjectContext 现在,当我调试并查看我的ObjectContext的_objectTypeCount时,当我重新加载我的网站时,它会不断增加,而我会认为旧的ObjectContext被处理掉了 为什么旧的ObjectContext在处理后仍在我的内存中?您正在查看ObjectContext类的一个静态变量: 我不知道这是为了什么。它统计在应用程序或会话生存期或其他时间段内创建ObjectContext的频率 但是,因为它是静态的,所以您不能从不断增加的计数器得出结论,您的ObjectContext实例没有从内存中删除 编辑 这个计数器和代码中的ObjectID显然与所谓的。BID代表内置诊断。上面的内部代码构造出现在许多ADO.NET类中。它仅用于跟踪这些类中的方法调用,并出现在如下跟踪函数中:C# 实体框架-\处理后的objectTypeCount,c#,asp.net,entity-framework,dispose,C#,Asp.net,Entity Framework,Dispose,在我的网站中,我有一个ObjectContextStorage,它将所有ObjectContext保存在其中。http请求完成后,我丢弃此存储,将其从HttpContext.Current.Items中删除,并在此存储中处置ObjectContext 现在,当我调试并查看我的ObjectContext的_objectTypeCount时,当我重新加载我的网站时,它会不断增加,而我会认为旧的ObjectContext被处理掉了 为什么旧的ObjectContext在处理后仍在我的内存中?您正在查看
EntityBid.Trace("<ec.EntityCommandDefinition.CreateCommand|ADV> %d#\n",ObjectID);
_objectTypeCount和ObjectID只是为类型的实例提供一个名称或唯一ID以跟踪输出
除了跟踪之外,它在ObjectContext类中没有任何功能意义。感谢您的回复,并对最近的评论表示抱歉。有没有其他方法可以查看ObjectContext当前在内存中的实例数?@Julian:不幸的是,我不知道。我认为ObjectContext在这方面并不特别。这可能归结为一个问题:如何检查对象是否仍在内存中或已被垃圾收集?或者别的什么。。。我对.NET系统基础设施的了解不足以回答这个问题。这将是一个有趣的新问题:
EntityBid.Trace("<ec.EntityCommandDefinition.CreateCommand|ADV> %d#\n",ObjectID);