【发布时间】:2014-02-15 01:39:02
【问题描述】:
我已经设置了两个动态内容模块并在后端成功地将一个链接到另一个。我遇到的问题是我试图从另一个查询一个的值。示例如下:
模块一: 业务领域 -> 业务部门
模块二: 服务
所以业务部门有一系列与服务相关的 Guid。我创建了一个小部件,您可以在其中单击服务,它会加载服务信息,但现在我想显示服务中的所有业务单位。我不得不这样做,因为我还将显示一个区域中的所有单元,并怀疑他们可能在多个服务区域中有一个单元,知道用户喜欢如何改变事物:)
那么对于如何检索这些有什么建议吗?我以为我会从页面 Guid 开始,但我真正想要的是传递给页面的服务 Guid,然后能够使用它运行 Linq 查询。到目前为止,我得到的错误是:
Database mapped field uses different type 'System.Guid[]'.
Parameter name: methodCallExpression
Actual value was re-d.FieldValue("Service").
生成自
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"));
}
很想知道我应该去哪里找任何提示。我觉得我已经达到了连续阅读相同的五个帖子和博客的目的。
【问题讨论】:
标签: c# asp.net linq sitefinity