2013-04-29 38 views
0

我们使用SC项目Web API在Web数据库中创建Sitecore项目。Sitecore数据库缓存 - 如何排除项目

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

有没有一种方法可以排除SC数据库缓存中只包含某些项目?如果是这样,你如何做到这一点?从链路(由戴夫·彼得森书面)

代码:

感谢

回答

1

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

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数据库中创建的)。

+0

+1您应该在主设备中创建项目 – jammykam 2013-04-29 13:19:50