2017-11-14 4 views
-4

WebサイトがASP.netで実行されるたびにデータベースに既に格納されているデータを渡す方法MVC ?? 私はメソッドを持つコントローラを持っています。私は、アプリケーションを実行するたびに既に格納されているデータに対して実行させたいのです。 この保存されたデータがタイムリーにコントローラに渡されるように変更する方法もあります。この記憶されたデータを5分ごとにコントローラ内のメソッドに一度渡したいとします。WebサイトがASP.NET MVCで実行されるたびに、データベースに既に格納されているデータを渡す方法はありますか?

+1

? – maccettura

+0

私はアプリケーションを実行するたびにdbに格納されたデータを渡す方法を知る必要があります。それは私のコントローラの1つで、私はアプリケーションを再起動するたびに、すでに格納されているデータを渡す必要があります。 –

+1

どこにデータを渡しますか? – Shyju

答えて

1

必要なものはcacheシングルトンのようなものです。

すべてのDIを使用して、コントローラで次に

public interface IMyStuff{ 
string VeryImportantStringHere {get;} 
} 

public MyStuff :IMyStuff { 

public string VeryImportantStringHere => { 
    var cached = HttpRuntime.Cache.Get(nameof(VeryImportantStringHere)); 
    if(cached != null) // might need to store something else if you could have nulls in db 
    { 
     return cached ; 
    } 

    cached = .... // retrieved from DB however you do it - ADO.net, Linq2Sql, EF etc... 

    Cache.Insert(nameof(VeryImportantStringHere), cached , null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5)); 

    } 
} 

、:

public controller MyController : Controller{ 

private IMyStuff _ms; 
public MyController(IMyStuff ms) 
{ 
    _ms = ms; 
} 

[HttpGet] 
public ActionResult Whatever(){ 
    var cached = _ms.VeryImportantStringHere; // cached now has the value. 
    return View(); 
    } 
} 
あなたはここに求めている正確に何
関連する問題