2017-02-15 7 views
1

私は、Mssqlデータベースにデータを読み書きするEntity FrameworkベースのWeb APIを使用しています。 コンテキストは、前に使用したデータをキャッシュしているため、データにアクセスするたびにデータベースにアクセスしたくない場合に便利です。Entity Framework - コンテキストでのキャッシュの防止

しかし、私の問題はここではじまる。

私はスタンドアロンで動作し、データベースを変更するクローラを持っています。したがって、私のWebアプリケーションのコンテキストは、クローラによって何が変更されたのかわかりません。データにアクセスしようとすると、そのデータが文脈で表示されるためです。

コンテキストでのキャッシュを防ぐにはどうすればよいですか?リクエストごとにmssqlからデータを読み込む方法を教えてください。

答えて

0

あなたは、エンティティは、あなたがReload法により、それをリロードすることができるよりも、あなたの現在のコンテキストの外に変更されたことが分かっている場合:

ジェネリックバージョンは、このようなルックスのようになります。

public T Reload<T>(T entity) where T : class 
{ 
    Context.Entry(entity).Reload(); 
    return entity; 
} 

ところで、あなたはほとんどの場合、特にWeb API/MVCの場合、EFコンテキストのライフサイクルを適切に管理するために問題が発生するのを避けることができます(リクエストごとにコンテキストの新しいインスタンスを作成する必要があります)

関連する問題