Orchardcms Orchard 1.8 HQLQuery on Infoset

Orchardcms Orchard 1.8 HQLQuery on Infoset,orchardcms,orchardcms-1.8,Orchardcms,Orchardcms 1.8,我很难找到任何关于如何对infoset部件执行HQLQuery的示例。 我正在构建一个自定义日历/事件管理模块,需要查询即将到来的事件。我使用的是严格的infoset(没有EventPartRecord类),但是我似乎无法正确地进行查询 每个日历可以显示多个事件类别,每个事件也可以显示多个事件类别 下面的代码生成在代码之后发布的错误: public IEnumerable<EventPart> GetUpcomingEventsForCalendar(CalendarPart

我很难找到任何关于如何对infoset部件执行HQLQuery的示例。 我正在构建一个自定义日历/事件管理模块,需要查询即将到来的事件。我使用的是严格的infoset(没有EventPartRecord类),但是我似乎无法正确地进行查询

每个日历可以显示多个事件类别,每个事件也可以显示多个事件类别

下面的代码生成在代码之后发布的错误:

    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]