C# 如何停止实体框架缓存数据?

C# 如何停止实体框架缓存数据?,c#,asp.net,entity-framework,visual-studio-2013,ninject,C#,Asp.net,Entity Framework,Visual Studio 2013,Ninject,在任何人将此标记为重复答案之前,请仔细阅读,因为我还没有找到一个与此场景相关的问题 我正在VS2013中开发一个使用EF6的ASP.NET MVC应用程序。下面的所有内容都涉及我的调试会话,而不是任何已部署的实例。这些都是通过VS和SQLServer2008R2管理工作室在我的开发机器上实现的 MVC项目已经(使用Ninject)注入了业务逻辑层的实例,而这些实例又注入了存储库。存储库通过EF查询数据库 我直接向数据库中添加了一些数据(即来自SSMS,而不是通过应用程序中的代码),它正确地显示在

在任何人将此标记为重复答案之前,请仔细阅读,因为我还没有找到一个与此场景相关的问题

我正在VS2013中开发一个使用EF6的ASP.NET MVC应用程序。下面的所有内容都涉及我的调试会话,而不是任何已部署的实例。这些都是通过VS和SQLServer2008R2管理工作室在我的开发机器上实现的

MVC项目已经(使用Ninject)注入了业务逻辑层的实例,而这些实例又注入了存储库。存储库通过EF查询数据库

我直接向数据库中添加了一些数据(即来自SSMS,而不是通过应用程序中的代码),它正确地显示在网站上。然后我再次通过SSMS修改了数据,这一次网站显示了重复条目,我确定没有任何条目

我知道上下文缓存,因此停止了调试运行并在Visual Studio中再次按下f5,认为这会破坏上下文并在新的调试会话中创建一个新的上下文-仍然显示重复数据

嗯,我重新启动了VS,因为这将关闭所有正在运行的上下文和web服务器,然后重试-仍然显示重复数据

嗯,让我们试着重新启动SQL Server-同样的问题(并不是我期望它能工作,但我现在已经没有主意了)

所以我很困惑。我理解EF上下文缓存数据的方式和原因,但与重新启动相比,它如何生存?我还没有重新启动机器,但除此之外,我似乎无法让它清除缓存


有人有什么想法吗?

也许你的代码中有个bug?你能不能把范围缩小一点,发布最小的代码片段来重现问题?没有代码很难判断,但这听起来不像是缓存问题,如果你重新启动进程,ef不会在内存中保存数据。应用程序中的“重复”数据而不是数据库中的数据听起来像是某种类型的连接在每行连接多次。不过,这只是一个暗中的尝试,请发布代码。结果表明,EF在一个我没有预料到的地方引入了子实体,而当我使用myEntity.Stuff=someStuff时,它将someStuff集合与现有的Stuff集合相结合,而不是仅仅替换它。奇怪的是,但一旦我意识到它在拉入子实体,我就不需要额外的代码了,所以问题就消失了。就像你们俩说的,最终与缓存无关。谢谢你的建议。