我们正在使用 SC Item Web API 在 Web 数据库中创建 Sitecore Items。
但是,在我们清除缓存之前,它们不会立即显示在内容树中。
有没有办法只排除某些项目被包含在 SC 数据库缓存中?如果是这样,你如何做到这一点?
谢谢
您可以创建一个自定义操作来部分清除缓存,如下所述:
链接中的代码(由 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 数据库中创建)。