我有一个实体框架为基础的Web API,读取和写入数据到Mssql数据库。如果您不想在每次访问任何数据时都访问数据库,则Context非常有用,因为它会缓存您以前使用过的数据。
但我的问题就在这里;
我有一个独立工作的爬虫和更改数据库。因此,我的web应用程序上下文不知道爬虫更改了什么。因为当我尝试访问数据时,它会显示上下文中的数据。
那么,我如何防止上下文中的缓存,我怎么能说为每个请求从mssql读取数据呢?
发布于 2017-02-16 14:06:15
如果您知道某个实体在当前上下文之外被修改,则可以通过Reload方法重新加载它:
通用版本可能如下所示:
public T Reload<T>(T entity) where T : class
{
Context.Entry(entity).Reload();
return entity;
}顺便说一句,在大多数情况下,特别是在Web API/MVC的情况下,由于对EF上下文的生命周期进行了适当的管理(您必须为每个请求创建上下文的新实例),您可以避免此类问题。
https://stackoverflow.com/questions/42246605
复制相似问题