在Umbraco中使用内容而不是文档(v6)

时间:2015-04-29 09:29:56

标签: umbraco umbraco6 umbraco4

我想在更新到v6解决方案中更新umbraco v4中的一些过时代码。

我有

entitiesFolder = new umbraco.cms.businesslogic.web.Document(folderId);
entitiesFolder.ReorderChildren(
    entitiesFolder.Children.OrderBy(fdoc => fdoc.Text), 
    refreshEntireCache);

现在,建议而不是过时的Document是使用Umbraco.Core.Models.Content。怎么样?没有找到(像往常一样的Umbraco)任何关于......的文件(

// new version
var toto = new Umbraco.Core.Models.Content(??)
toto.SoirtChildren(???)

2 个答案:

答案 0 :(得分:2)

你是从剃须刀的角度来看这个吗?如果是这样,你可以这样做:

var nodeId = 123;
var myNode = Umbraco.TypedContent(nodeId);
var property = myNode.GetPropertyValue<string>("myStringAlias");

如果你是从某个类或某个东西那里做的,你将不得不使用类似的东西:

var helper = new UmbracoHelper(UmbracoContext.Current);
var nodeId = 123;
var myNode = helper.TypedContent(nodeId);

(这是未经测试但它应该有效..)

答案 1 :(得分:1)

如果您只是查询数据并需要对其进行排序,那么使用umbracoHelper是一个很好的方法。它只能访问App_Data / umbraco.config中的xml缓存,因此您不会访问数据库。

但是,如果您尝试以编程方式对内容树中的某些节点进行排序,则需要使用ContentService。每当您真正想要以编程方式修改内容节点时,您将需要使用ContentService。您还会在媒体上找到类似的MediaService

https://our.umbraco.org/Documentation/Reference/Management-v6/Services/ContentService

ApplicationContext.Current.Services.ContentService.Sort(...)