0

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

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

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

谢谢

4

1 回答 1

1

您可以创建一个自定义操作来部分清除缓存,如下所述

链接中的代码(由 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 数据库中创建)。

于 2013-04-29T12:47:47.973 回答