我已经设置了两个动态内容模块,并成功在后端链接到另一个。我遇到的问题是我试图从另一个查询一个值。该示例如下:使用Sitefinity查询相关的动态内容模块
模块一: 业务领域 - >业务部
模块二: 服务
所以业务部门都有相关服务的Guid的数组。我创建了一个Widget,您可以点击该服务并加载服务信息,但现在我想显示服务中的所有业务单元。我必须这样做,因为我将显示所有单位在一个区域以及怀疑他们可能有一个单位在多个服务领域知道用户喜欢如何改变东西:)
所以有没有关于如何检索这些的建议?我以为我会从Page Guid开始,但我真正想要的是传递给页面的服务Guid,然后使用它来运行Linq查询。我已经走到这一步,抛出的错误:这是一个从
var pManager = Telerik.Sitefinity.Modules.Pages.PageManager.GetManager();
Telerik.Sitefinity.Pages.Model.PageData page = pManager.GetPageData(new Guid(currentNode.Key));
if (page != null)
{
var serviceGuid = new Guid(SiteMapBase.GetCurrentProvider().CurrentNode.Key);
var list = new List<Guid>();
list.Add(serviceGuid);
Guid[] guidList = list.ToArray();
DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
Type serviceType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.Services.Service");
Type businessUnitType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.BusinessAreas.BusinessUnit");
myFilteredCollection = dynamicModuleManager.GetDataItems(businessUnitType)
.Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible == true)
.Where(d => d.GetValue<TrackedList<Guid>>("Service").Contains(guidList))
.OrderBy(i => i.GetValue<System.Decimal>("SortOrder"));
}
产生很想任何提示到哪里我应该寻找
Database mapped field uses different type 'System.Guid[]'.
Parameter name: methodCallExpression
Actual value was re-d.FieldValue("Service").
。我觉得我已经不断阅读相同的五个帖子和博客。
谢谢!我已经想通了,并计划今天发布它,但你的比我迄今为止更优雅! – BigGeorge
没问题,乐于帮忙! – Ben