Je suis en train de convertir le résultat de la requête en IDictionarycasting Nhibernate résultat dans IDictionary <string,int>
Ici chaîne contiendra orderId et l'int contiendra les TradedQuantity
La requête ci-dessous devrait se joindre à trois objets Ordre, OrderRevision et OrderEvent. 1 Commander peut avoir plusieurs orderRevisions 1 OrderRevision peut avoir de nombreux orderEvents
Ce que la requête essaie de faire est de jointure interne trois objets et obtenir tous les objets de commande dont id ordre correspond à la liste des OrderIDs qui lui sont fournis. Ensuite, il fait un groupe basé sur orderId et obtient le dernier TradedQuantity de l'objet orderEvents. LatestTradedQuantity sera le TradedQuantityFrom dernier OrderEvent. Pour l'instant, le dernier orderevent peut être considéré comme celui qui a la valeur OrderEventId la plus élevée.
OrderRevision revisionAlias = null;
Order orderAlias = null;
var query =
Session.QueryOver<OrderEvent>()
.JoinAlias(oe => oe.OrderRevision,() => revisionAlias)
.JoinAlias(oe => oe.OrderRevision.Order,() => orderAlias)
.Where(x => x.OrderRevision.Order.SourceSystem.Name.ToLower() == sourceSystem.ToLower())
.WhereRestrictionOn(x => x.OrderRevision.Order.Id).IsIn(orderIds.ToList())
.SelectList(list => list.SelectGroup(x => x.OrderRevision.Order.SourceOrderIdentifier)
.SelectMax(x => x.Id).Select(x => x.TradedQuantity))
.Select(x => new KeyValuePair<string, int?>(x.OrderRevision.Order.SourceOrderIdentifier, x.TradedQuantity)
);
Comme cette requête ne fait pas ce qui est supposé. Pourriez-vous s'il vous plaît aider et laissez-moi savoir comment le résultat peut être jeté dans IDictionary?
Merci pour votre réponse. Je reviendrai vers vous une fois que j'aurai essayé et testé. – Sike12
Merci Frédéric – Sike12