2015-10-09 1 views
6

В EPiServer 7 я столкнулся с двумя различными интерфейсами, чтобы получить хранилище EPiServer - IContentRepository и IContentLoader.IContentRepository против IContentLoader в EPiServer

Пример:

var repo = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IContentRepository>(); 

и:

var repo = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IContentLoader>(); 

Может кто-нибудь объяснить мне, когда использовать один перед другим? Спасибо заранее.

ответ

10

Когда использовать один перед другим, зависит от действия действия, которое вы хотите выполнить.

Прежде всего, позволяет пройти через их определения (указано на world.episerver.com)

IContentRepository

"IContentRepository является основным API, который определяет методы хранилища для объектов IContent [.. .] Через репозиторий вы можете выполнять операции CRUD (Create, Read, Update, Delete) и другие операции с экземплярами содержимого, такими как перечисление и перемещение (то есть экземпляры, реализующие EPiServer.Core.IContent). «

IContentLoader

«Описывает услугу, которая может быть использована для чтения объектов данных контента из хранилища

Как указано в определении, IContentLoader используется для чтения содержимого, например. он не поддерживает всю производительность CRUD. Анекдот: IContentRepository реализует интерфейс IContentLoader.

Более короткий ответ:

Использование IContentRepository, когда вы планируете изменения контента/данных в хранилище.

Использование IContentLoader, когда вы только планируете чтение контента/данных в хранилище.

Надеюсь, это прояснит это для вас!

+0

Thx @ChrisRun. Это, безусловно, разъясняет это :) – ElC