2012-12-16 93 views
0

我有一个带有ID值的IdentityPart的HtmlWidget,如“/ Identifier = 40b3f227-61af-4d8b-95c9-53bd6021a70e”。删除代码中的Orchard CMS HtmlWidget

<HtmlWidget Id="/Identifier=40b3f227-61af-4d8b-95c9-53bd6021a70e" Status="Published"> 
    <IdentityPart Identifier="40b3f227-61af-4d8b-95c9-53bd6021a70e" /> 
    .... 

什么是正确的方式来删除这样的代码在这个小部件? 我假设我们以某种方式使用contentmanager获取对象并删除或取消发布它。但我不确定这样做的确切机制。希望能够对此方法提供一个示例和一些指导。

回答

2

基本上,您可以按照您的建议使用内容管理器检索项目。例如,如果你想通过自己的身份检索项:

var item = _contentManager.Query<IdentityPart, IdentityPartRecord>() 
    .Where(c => c.Identifier == "40b3f227-61af-4d8b-95c9-53bd6021a70e") 
    .Slice(0, 1).FirstOrDefault(); 

然后传递检索到的内容项背到内容管理器删除或取消发布:

if (item != null) 
{ 
    //delete the item - remains in the db but is no longer a draft or published 
    _contentManager.Remove(item.ContentItem); 
    //or unpublish 
    _contentManager.Unpublish(item.ContentItem); 
} 
+0

谢谢你,damoclarke。这正是我需要看到的! – user1888320

+0

标识符字段是一个ntext字段,不能在谓词中使用,但您的答案给了我所查找的模式。 – user1888320