Чтобы иметь возможность сортировать запрос по TotalViews, нам нужно изменить некоторые части кода внутри модуля счетчика просмотров контента.
1) Изменить модели
public class UserViewRecord : ContentPartRecord
{
public virtual int TotalViews { get; set; }
}
public class UserViewPart : ContentPart<UserViewRecord>
{
[Required]
public int TotalViews
{
get { return Record.TotalViews; }
set { Record.TotalViews = value; }
}
}
На самом деле мы создаем таблицу, когда можем хранить общее количество просмотров. Итак, нам нужно выполнить еще 2 шага.
2) Добавьте код в migration.cs.
public int UpdateFrom2() {
SchemaBuilder.CreateTable("UserViewRecord", table => table
.ContentPartRecord()
.Column("TotalViews", DbType.Int32)
);
ContentDefinitionManager.AlterPartDefinition(
typeof(UserViewPart).Name, cfg => cfg.Attachable());
return 3;
}
3) Измените наш класс обработчика, чтобы указать, что IRepository UserViewRecord должен использоваться в качестве хранилища для этой части.
public UserViewPartHandler(IVotingService votingService,
IOrchardServices orchardServices, IRepository<UserViewRecord> repository)
{
_votingService = votingService;
_orchardServices = orchardServices;
Filters.Add(StorageFilter.For(repository));
//more code
//more code
}
В конце концов, как сказал Бертран Ле Руа, мы можем добавить привязку к свойству TotalViews и использовать TotalViews в качестве критерия сортировки.
person
g bas
schedule
11.03.2013