Orchardcms Orchard 1.8 HQLQuery on Infoset
我很难找到任何关于如何对infoset部件执行HQLQuery的示例。 我正在构建一个自定义日历/事件管理模块,需要查询即将到来的事件。我使用的是严格的infoset(没有EventPartRecord类),但是我似乎无法正确地进行查询 每个日历可以显示多个事件类别,每个事件也可以显示多个事件类别 下面的代码生成在代码之后发布的错误:Orchardcms Orchard 1.8 HQLQuery on Infoset,orchardcms,orchardcms-1.8,Orchardcms,Orchardcms 1.8,我很难找到任何关于如何对infoset部件执行HQLQuery的示例。 我正在构建一个自定义日历/事件管理模块,需要查询即将到来的事件。我使用的是严格的infoset(没有EventPartRecord类),但是我似乎无法正确地进行查询 每个日历可以显示多个事件类别,每个事件也可以显示多个事件类别 下面的代码生成在代码之后发布的错误: public IEnumerable<EventPart> GetUpcomingEventsForCalendar(CalendarPart
public IEnumerable<EventPart> GetUpcomingEventsForCalendar(CalendarPart calendar,
VersionOptions versionOptions, int count)
{
versionOptions = versionOptions ?? VersionOptions.Published;
string[] ids = calendar.EventCategoryIds;
var events = _contentManager.HqlQuery()
.ForPart<EventPart>()
.Where(alias => alias.ContentItem() ,a=>
a.And(x => x.Ge("StartDate", DateTime.Today), y => y.InG("EventCategoryIds", ids)))
.OrderBy(x => x.ContentItem(), order => order.Asc("StartDate"))
.Slice(0, count);
return events;
}
无法查询仅保存在
InfosetPart
中的属性。如果您需要查询零件的某些属性,您需要有一个包含这些属性的支持记录,这是经典的方法。我认为不可能查询信息集。这篇文章解释了infoset,最终不得不使用标准查询。
Orchard.ContentManagement.Drivers.Coordinators.ContentPartDriverCoordinator:
ERROR - QueryException thrown from IContentPartDriver by
Web.Module.Events.Drivers.CalendarWidgetPartDriver
NHibernate.QueryException: could not resolve property: StartDate of:
Orchard.ContentManagement.Records.ContentItemRecord [select distinct civ.Id as Id,
ci.StartDate
from Orchard.ContentManagement.Records.ContentItemVersionRecord as civ
join civ.ContentItemRecord as ci
where (ci.StartDate >= '2014-06-06 07:43:50' and ci.EventCategoryIds in
('2e1ab64c61434df78b7112a2142089bc') ) AND (civ.Published = True)
order by ci.StartDate]