我目前正在为Sitefinity(v9.2)项目构建一个自定义MVC小部件。Sitefinity - LINQ to SQL限制?
作为此小部件的一部分,存在对数据库的查询以检索动态模块类型(文章)的集合。我试图获取包含我的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查询组合,这些组合已经成功,我很努力地在这里理解这个问题。
任何想法将不胜感激!
UPDATE: 我曾尝试,如在同一查询几个变化:
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:任何(IEnumerable 1,Func
2)'在数据库服务器端目前未实现。
任何进一步的意见,将不胜感激,现在我会认为这是关于LINQ to SQL的OpenAccess限制。
动态模块中“公共”字段的类型是什么? –
你好,公共领域是一个分类。所以这将是一个TrackedList ... –