【发布时间】:2017-04-04 19:36:26
【问题描述】:
我目前正在为 Sitefinity (v9.2) 项目构建自定义 MVC 小部件。
作为此小部件的一部分,可以查询数据库以检索动态模块类型(文章)的集合。我正在尝试获取包含 Labels.PublicLabels guid 列表中所有标签的文章类型。
我目前的查询是:
var collection = dynamicModuleManager.GetDataItems(articleType)
.Where(a => a.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live
&& a.Visible == true
&& Labels.PublicLabels.All(l => a.GetValue<IList<Guid>>("Public").Contains(l)));
在运行时,我收到一个异常,提到“服务器端未实现”。 这可能是 OpenAccess 的限制吗?
我已经尝试了各种成功的 LINQ to SQL 查询组合,但我很难理解这里的问题。
任何想法将不胜感激!
更新: 我在同一个查询上尝试了一些变体,例如:
var collection = dynamicModuleManager.GetDataItems(articleType)
.Where(a => a.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live
&& a.Visible == true
&& Labels.PublicLabels.Any(l => a.GetValue<IList<Guid>>("Public").Contains(l)));
没有结果,我仍然收到以下异常消息:
目前未在数据库服务器端执行“System.Linq.Enumerable:Any(IEnumerable1,Func2)”。
任何进一步的建议将不胜感激,现在我假设这与围绕 LINQ to SQL 的 OpenAccess 限制有关。
【问题讨论】:
-
你的动态模块中“Public”字段的类型是什么?
-
您好,公共字段是一个分类。所以这将是一个 TrackedList
...
标签: c# sql linq telerik sitefinity