2017-02-15 3 views
1

Ich habe eine Entity Framework-basierte Web-API, die Daten in Mssql-Datenbank liest und schreibt. Der Kontext ist ideal, wenn Sie nicht jedes Mal auf die Datenbank zugreifen möchten, wenn Sie auf Daten zugreifen möchten, da die Daten, die Sie zuvor verwendet haben, zwischengespeichert werden.Entity Framework - Cache im Kontext verhindern

Aber mein Problem sarts hier;

Ich habe einen Crawler, der eigenständig funktioniert und die Datenbank ändert. Mein Webanwendungskontext weiß also nicht, was der Crawler geändert hat. Weil, wenn ich versuche, auf die Daten zuzugreifen, zeigt es mir die Daten im Zusammenhang an.

Also, wie kann ich Cache im Kontext verhindern, wie kann ich sagen, dass Daten von MSSQL für jede Anfrage zu lesen?

Antwort

0

Wenn Sie wissen, dass ein Entity wurde aus Ihrem aktuellen Kontext geändert, als Sie es mittels Reload Methode nachladen:

generische Version sieht wie folgt sein könnte:

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

Btw Sie kann in den meisten Fällen solche Probleme vermeiden, insbesondere im Fall von Web-API/MVC aufgrund der ordnungsgemäßen Verwaltung des Lebenszyklus des EF-Kontextes (Sie müssen für jede Anfrage eine neue Instanz des Kontexts erstellen)

Verwandte Themen