3
我在Raven中查詢動態屬性時遇到了一些麻煩。查詢RavenDB中的動態屬性
這裏是我的課:
public class Parent
{
public string ID { get; set; }
public dynamic Child { get; set; }
}
public class Son
{
public int A { get; set; }
public Guid Key { get; set; }
}
public class Daughter
{
public int A { get; set; }
public Guid Key { get; set; }
}
我試圖做的是指數父母的孩子是兒子,但沒有女兒,指數的子屬性「A」或「鑰匙」 。就我而言,孩子們不能從界面繼承,因爲真正的孩子類看起來完全不同。這些類是爲了與場景匹配的測試而構建的。
我已經建立了該指數到目前爲止是這樣的:
public class DynamicIndex : AbstractIndexCreationTask
{
public override Raven.Abstractions.Indexing.IndexDefinition CreateIndexDefinition()
{
return new IndexDefinition()
{
Map = @"from doc in docs.Parent select new { A = doc.Dynamic.A, B = doc.Dynamic.B }"
};
}
}
該指數除了工作,我似乎無法過濾掉誰匹配一個類型,而不是其他的孩子。序列化的JSON for Child包含一個名爲'$ type'的屬性,它是Type的全名。我的直覺告訴我用這個來區分不同類型的孩子,但我不知道如何訪問它。
如何擴展我的索引映射以包含'$ test'屬性或者是否有另一種方法來篩選與特定類型匹配的子項?
謝謝!不是我正在尋找的答案,但它比我預想的更好。有沒有可能在where子句中訪問$ type?這就是我原本想要放置我的濾波器的地方,但我似乎無法使其工作。 –