Sitecore数据库缓存 - 如何排除项目

时间:2013-04-29 12:30:44

标签: asp.net caching sitecore

我们正在使用SC Item Web API在Web数据库中创建Sitecore项目。

但是,在我们清除缓存之前,它们不会立即显示在内容树中。

有没有办法只排除某些项目被包含在SC数据库缓存中?如果是这样,你怎么做?

由于

1 个答案:

答案 0 :(得分:1)

您可以创建自定义操作以将缓存部分清除为explained here

链接中的代码(由Dave Peterson编写):

public static void ClearDataItemCache(Database database, IEnumerable ids)
{
    Cache prefetchCache = GetPrefetchCache(database);

    foreach (ID id in ids)
    {    
        if (!ID.IsNullOrEmpty(id))
        {
            database.Caches.ItemCache.RemoveItem(id);
            database.Caches.DataCache.RemoveItemInformation(id);
            database.Caches.StandardValuesCache.RemoveKeysContaining(id.ToString());

            if (prefetchCache != null)
            {
                prefetchCache.Remove(id);
            }
        }
    }
}

但是,请记住,每当您从Master数据库发布到Web数据库时,您的项目将被再次删除(除非它也在Master数据库中创建)。