Ravendb multimapindex结果不完整

问题描述 投票:0回答:1

我是RavenDB的新手。我正在尝试在RavenDB中创建multimapindex,下面是其中一个地图:

this.AddMap<ProposedData>(proposedDatas =>
                                        from psd in proposedDatas
                                        let pgds = psd.PropertyGroupValues.Select(pgv => this.LoadDocument<PropertyGroupDefinition>($"PropertyGroupDefinitions/{pgv.DefinitionId}"))
                                        let propertyDefs = pgds.SelectMany(pgd => pgd.PropertyDefinitions)
                                        let propertyVals = psd.PropertyGroupValues.SelectMany(pgv => pgv.PropertyValues.SelectMany(pv => propertyDefs.Where(pd => pd.Id == pv.DefinitionId).Select(pd => new { Value = this.AsDocument(pv).Value<object>("Value"), TagName = pd.TagName })))
                                        from property in propertyVals
                                        select new Result
                                        {
                                            Id = psd.Id.ToString().Replace("ProposedDatas/", ""),
                                            HasApprovedVersion = false,
                                            Value = property.Value, 
                                            TagName = property.TagName
                                        });

它确实创建了索引,但不包括所有Value和TagName。但是当我使用时

Value = propertyVals.Select(pv => pv.TagName),

相反,它有我正在寻找的完整TagName列表。我正在使用RavenDB v3。如果我做错了,请告诉我。

以下是我的结果结构:

public class Result
    {
        public bool HasApprovedVersion { get; set; }
        public string Id { get; set; }
        public object Value { get; set; }
        public string TagName { get; set; }
    }

P.S我试图使用join,但是有例外。

谢谢。

c# ravendb
1个回答
0
投票

写两个from是不可取的,但它是受支持的。可能的问题是索引的复杂性,因为我们正试图重建你在另一方面的含义。通常,最好避免使用扇出并且每个文档只有一个条目。

© www.soinside.com 2019 - 2024. All rights reserved.