Orchardcms 比较具有相同内容选择器字段的两种内容类型的投影查询

Orchardcms 比较具有相同内容选择器字段的两种内容类型的投影查询,orchardcms,projection,orchardcms-1.9,Orchardcms,Projection,Orchardcms 1.9,我想列出一个特定城市的交易。我正在使用一个内容选择器字段将这些属性链接到交易和城市 我有三种内容类型,其中两种内容类型有一个连接属性的内容选择器字段: 城市(带有允许选择属性的ContentPicker字段) 财产 处理(使用允许选择属性的ContentPicker字段) 物业与交易的链接如下: 交易1=物业1 交易2=物业1 交易3=物业2 房产与城市的链接如下: 城市1=物业1 城市2=物业2,物业3 所以我想要得到的结果是: 城市1-交易1和交易2应显示 城市2-应显示交易3

我想列出一个特定城市的交易。我正在使用一个内容选择器字段将这些属性链接到交易和城市

我有三种内容类型,其中两种内容类型有一个连接属性的内容选择器字段:

  • 城市(带有允许选择属性的ContentPicker字段)
  • 财产
  • 处理(使用允许选择属性的ContentPicker字段)
物业与交易的链接如下:

  • 交易1=物业1
  • 交易2=物业1
  • 交易3=物业2
房产与城市的链接如下:

  • 城市1=物业1
  • 城市2=物业2,物业3
所以我想要得到的结果是:

  • 城市1-交易1和交易2应显示
  • 城市2-应显示交易3,因为为该城市选择的属性中存在属性2

据我所知,问题在于,{Request.Content.Fields.CityTown.Properties}没有以类似于“2”、“3”的列表形式为我提供所选ID。因此,如果我的城市连接到多个属性,它不会返回任何结果,因为它与“2,3”不匹配。如果我将属性3添加到交易3中,它会给我结果,因为“2,3”等于“2,3”,它可以直接匹配,但它不会检查为交易列出的属性Id是否存在于为当前城市列出的属性Id中,以给我该城市的交易。希望这是有道理的


诀窍是我想使用Orchard CMS系统中的现有功能我不想编写自定义模块等。我希望有一个简单的方法解决这个问题。

我仍然认为编写代码是您最好的选择。如果您没有得到这个问题的答案,只需实现
Orchard.Projections.Services.IFilterProvider
并调整
FilterContext
。既然您已经知道要如何过滤它,编写该查询应该不会太难。谢谢,我会研究它。我目前正在使用一个形状来输出查询,是否不可能在形状中查询“查询”?