2016-11-29 7 views
0

Я немного путаницы здесь, в этой строке кодаUmbraco Получение значения от содержания

var cs = ApplicationContext.Current.Services.ContentService.GetById(1000); 
cs.GetValue("test"); 

var nd = new Node(1000); 
nd.GetProperty("test"); 

Оба этого кода можно использовать .. Каковы различия между этим двумя кодовыми .. Когда и Почему мы используем либо один из них

ответ

2

Umbraco Услуги
служба слой нового Umbraco API, введенного в Umbraco 6 включает в себя ContentService, а MediaService, а DataTypeService, и LocalizationService. Обратитесь к umbraco documentation за документацию об этих услугах и других услугах umbraco.

Услуги в umbraco попадают в базу данных и не используют все кэширование, предоставляемое umbraco. Вы должны использовать эти услуги экономно. Если вы пытаетесь программно добавить/обновить/удалить из базы данных или если вы пытаетесь получить неопубликованный контент из базы данных, вы должны использовать эти службы. Если вам нужно только запросить опубликованный контент, вы должны использовать UmbracoHelper, потому что он намного быстрее.

var cs = ApplicationContext.Current.Services.ContentService.GetById(1000); 
cs.GetValue("test"); 

UmbracoHelper
UmbracoHelper является то, что вы почти всегда должны использовать, когда вы хотите, чтобы запросить содержимое из Umbraco. Он не попадает в базу данных и намного быстрее, чем услуги umbraco.

var node = Umbraco.TypedContent(1000); 
var nodeVal = node.GetPropertyValue<string>("test"); 

Если вы обнаружите, что у вас нет доступа к UmbracoHelper, вы можете сделать свой собственный, пока у вас есть UmbracoContext:

var umbracoHelper = new UmbracoHelper(UmbracoContext.Current); 
var node = Umbraco.TypedContent(1000); 
var nodeVal = node.GetPropertyValue<string>("test"); 

NodeFactory
NodeFactory устарела , Если вы используете Umbraco 6 или выше, я настоятельно рекомендую перейти на UmbracoHelper.

var nd = new Node(1000); 
nd.GetProperty("test"); 
2

В бритвой или код во внешнем интерфейсе, всегда используйте UmbracoHelper

var node = Umbraco.TypedContent(1000); 
var value = node.GetPropertyValue<string>("test"); 

Это будет запрашивать кэш для опубликованного узлы

Вы хотите использовать вызов ContentService для запросов к базе данных, например, если вы хотите получить информацию о неопубликованных узлах (вы не хотите, чтобы сделать это в ваших взглядах)

запросов с помощью объекта Node, вероятно наследство (я никогда не использовал его)

Смежные вопросы