我想轉換結果的查詢到IDictionary的鑄造NHibernate的結果轉換成IDictionary的<string,int>
這裏字符串將包含訂單ID和INT將包含TradedQuantity
下面的查詢應加入三個對象秩序, OrderRevision和OrderEvent。 1訂單可以有很多orderRevisions 1 OrderRevision可以有很多orderEvents
什麼查詢試圖做的是內部連接三個對象,並得到所有的訂單對象,它們的訂單ID提供給它orderids的列表匹配。然後它根據orderId完成一個組,並從orderEvents對象獲取最新的TradedQuantity。 LatestTradedQuantity將是TradedQuantityFrom最新的OrderEvent。現在可以將最新的orderevent視爲OrderEventId值最高的那個。
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)
);
由於此查詢不做什麼應該。你能幫忙,讓我知道如何將結果投入到IDictionary中嗎?
謝謝你的回答。一旦我嘗試並測試它,我會回到你身邊。 – Sike12
謝謝你弗雷德裏克 – Sike12