Orchardcms 需要帮助从Orchard CMS中的形状方法返回任意内容吗

Orchardcms 需要帮助从Orchard CMS中的形状方法返回任意内容吗,orchardcms,orchardcms-1.7,Orchardcms,Orchardcms 1.7,我已经实现了中所述的shape方法,但现在我在尝试使用查询获取并返回内容时遇到了问题 shape方法有效,但如果添加以下行,则在查找视图时会产生错误: var items = _contentManager.Query<TitlePart, TitlePartRecord>().Where(t => t.Title.Contains("Orchard")); var items=\u contentManager.Query()。其中(t=>t.Title.Contains(

我已经实现了中所述的shape方法,但现在我在尝试使用查询获取并返回内容时遇到了问题

shape方法有效,但如果添加以下行,则在查找视图时会产生错误:

var items = _contentManager.Query<TitlePart, TitlePartRecord>().Where(t => t.Title.Contains("Orchard"));
var items=\u contentManager.Query()。其中(t=>t.Title.Contains(“乌节”);
我可以通过创建它正在查找的视图来消除错误,但是这样会覆盖我试图在shape方法中返回的文本

如何从Orchard中获取内容项并使用我的shape方法从项返回文本,以及如何避免生成的视图错误

我已经添加了对IContentManager等的必要用法和引用

更新

我得到的错误是“对象引用未设置为对象的实例”


以下是完整的堆栈跟踪:

内容查询可能不支持String.Contains方法(内容查询使用NHibernate.Linq.Query)。 您可以改用Hql查询

var items = _contentManager.HqlQuery().Where(
    a => a.ContentPartRecord<TitlePartRecord>(),
    p => p.Like("Title", "Orchard", Orchard.ContentManagement.HqlMatchMode.Anywhere));
var items=\u contentManager.HqlQuery()。其中(
a=>a.ContentPartRecord(),
p=>p.Like(“Title”,“Orchard”,Orchard.ContentManagement.HqlMatchMode.Anywhere));

可能是您缺少查询末尾的.List()。现在,我认为您正在返回一个IQueryable对象,以便能够向查询添加更多过滤器。您需要将.List()添加到查询的末尾,以便在数据库中执行查询并返回IEnumerable

var items = _contentManager.Query<TitlePart, TitlePartRecord>().Where(t => t.Title.Contains("Orchard")).List();
var items=\u contentManager.Query().Where(t=>t.Title.Contains(“Orchard”).List();

请包含生成的错误对此表示抱歉,对于延迟--我的错误已被添加。请记住,LIKE查询往往非常慢。这似乎给了我与上述相同的错误。在控制器构造函数中是否有赋值运算符_contentManager=contentManager?您是否尝试过使用HqlQuery?