ich den folgenden Code haben:RavenDB: Wie behebe ich diese Map Code reduzieren? Ich erhalte NULL-Werte, wo ich erwarte Ergebnisse
public class WorkOrderByUserId : AbstractMultiMapIndexCreationTask<WorkOrderByUserId.Result>
{
public WorkOrderByUserId()
{
this.AddMap<WorkOrder>(items
=> from item in items
select new Result
{
OwnerId = item.OwnerId,
WorkOrder = new WorkOrderLookupDto
{
Id = item.Id,
Name = item.EventName
},
WorkOrders = null
});
this.AddMap<Invoice>(items
=> from item in items
select new Result
{
OwnerId = item.WorkOrder.OwnerId,
WorkOrder = new WorkOrderLookupDto
{
Id = item.WorkOrder.Id,
Name = item.WorkOrder.EventName
},
WorkOrders = null
});
this.Reduce = results => from result in results
group result by result.OwnerId
into g
select new Result
{
OwnerId = g.Key,
WorkOrders = g.Select(x => x.WorkOrder),
WorkOrder = null
};
this.Indexes.Add(x => x.OwnerId, FieldIndexing.Default);
}
public class Result
{
public string OwnerId { get; set; }
public IEnumerable<WorkOrderLookupDto> WorkOrders { get; set; }
public WorkOrderLookupDto WorkOrder { get; set; }
}
}
Es mir sehr nahe kommt, wo ich sein möchte, aber ich scheine etwas zu fehlen, und ich bin Informationen verlieren und ich bin mir nicht sicher warum.
Mit der Map/Reduce Visualizer Ich bemerke die MAP die Ergebnisse anzeigt (dh Arbeitsaufträgen gefüllt ist, und Workorder ist null)
Als dieser Stelle ich eine Reihe von Artikeln haben erwartete mit NULL WorkOrders und einem gültigen WorkOrder, von dem erwartet wurde, dass ich ihn in die WorkOrders-Sammlung reduziere.
Wenn ich mir die endgültige Reduzierung im Visualizer anschaue, bemerke ich, dass meine WorkOrder NULL ist und meine WorkOrders vollständig fehlen.
Und wenn ich auf das Endergebnis des Index sehe ich sehen, was ich suche, nur ohne die eigentlichen Daten, die ich suche.
Was muß ich meine letzten Arbeitsaufträgen NULL zu sein, um nicht zu erhalten ändern?
Es wäre gut, deine Antwort als die richtige Antwort zu markieren;) –
anscheinend muß ich 2 Tage warten, bevor ich tun kann, dass ;) – user1265146