第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在MVC應(yīng)用程序中緩存數(shù)據(jù)

如何在MVC應(yīng)用程序中緩存數(shù)據(jù)

阿晨1998 2019-07-09 16:28:35
如何在MVC應(yīng)用程序中緩存數(shù)據(jù)我在MVC應(yīng)用程序中閱讀了很多關(guān)于頁面緩存和部分頁面緩存的信息。但是,我想知道您將如何緩存數(shù)據(jù)。在我的場景中,我將使用LINQto實(shí)體(實(shí)體框架)。在第一次調(diào)用GetNames(或任何方法)時,我想從數(shù)據(jù)庫中獲取數(shù)據(jù)。我希望將結(jié)果保存在緩存中,并在第二次調(diào)用時使用緩存版本(如果存在的話)。有人能給我們舉一個例子,說明它是如何工作的,應(yīng)該在什么地方實(shí)現(xiàn)(模型?)如果能成功的話。我在傳統(tǒng)的ASP.NET應(yīng)用程序中看到過這種情況,通常用于非常靜態(tài)的數(shù)據(jù)。
查看完整描述

3 回答

?
炎炎設(shè)計

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊

下面是我使用的一個簡單的緩存幫助類/服務(wù):

using System.Runtime.Caching;  public class InMemoryCache: ICacheService{
    public T GetOrSet<T>(string cacheKey, Func<T> getItemCallback) where T : class
    {
        T item = MemoryCache.Default.Get(cacheKey) as T;
        if (item == null)
        {
            item = getItemCallback();
            MemoryCache.Default.Add(cacheKey, item, DateTime.Now.AddMinutes(10));
        }
        return item;
    }}interface ICacheService{
    T GetOrSet<T>(string cacheKey, Func<T> getItemCallback) where T : class;}

用法:

cacheProvider.GetOrSet("cache key", (delegate method if cache is empty));

緩存提供程序?qū)z查緩存中是否有名為“cache id”的內(nèi)容,如果沒有,它將調(diào)用委托方法來獲取數(shù)據(jù)并將其存儲在緩存中。

例子:

var products=cacheService.GetOrSet("catalog.products", ()=>productRepository.GetAll())



查看完整回答
反對 回復(fù) 2019-07-09
  • 3 回答
  • 0 關(guān)注
  • 754 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號