我最近接触到实体框架6 caching mechanism。 正如我们可能从this article得出的那样,它是以第一杠的方式做的。我们是否需要外部缓存机制,而EF 6是否使用缓存?
我们的系统使用与MemoryCache
沿EF 6(第一代码)来提高性能。
我们使用MemoryCache
主要的原因是因为我们需要在每一个页面请求的执行强烈的查询。我们对每个页面请求执行此查询x3次(在最坏的情况下),因为有客户端回调。
我不知道,如果我们仍然需要使用MemoryCache
机制如果EF 6已经在使用一个。
值得一说的是,我们不使用任何特殊的缓存功能或缓存依赖。只是一个简单的MemoryCache
超时。
谢谢你。我对第二部分感到惊讶,如果我执行一个查询,然后更改数据库中的值并再次执行相同的查询,它会带给我相同的结果,而不会发生更改。它是否仍然在第二次提到DB?虽然它给了我未更新的数据? – Jacob
@Jacob我更新了那部分来回答你的问题,希望它很清楚。如果您仍然有这方面的担忧 - 很容易验证自己 - 只需设置日志记录(如'context.Database.Log = Console.WriteLine'),然后执行相同的查询两次,您将看到执行了两个数据库查询。 – Evk
最好解释。非常感谢你! – Jacob