Nhibernate Group By и приведение результата в collectionOfObjects

public class Test
{
    public string SourceSystemIdentifier { get; set; }
    public int TotalTradedQuantity { get; set; }
}


     //Niherbate Query
                var result =
                session.QueryOver<OrderEvent>()
                    .JoinQueryOver(oe => oe.OrderRevision, () => revisionAlias)
                    .JoinQueryOver(or => or.Order, () => orderAlias)
                    .Where(p => p.SourceSystem.Name.ToLower() == sourceSystem.ToLower())
                    .WhereRestrictionOn(x => x.SourceOrderIdentifier).IsIn(orderIdentifiers.ToList())
                    .SelectList(list => list
                        .SelectGroup(() => list
                            .Select(x => x.OrderRevision.Order.SourceOrderIdentifier))
                            .SelectMax(x => x.Id))
                   .Select(x => new Test
                    {
                        SourceSystemIdentifier = sourceIdentifierAlias,
                        TotalTradedQuantity = x.TotalTradedQuantity ?? 0
                    })
                    .List<Test>();               

Когда я запускаю вышеуказанный запрос, я получаю следующую ошибку:

Msgstr "System.InvalidOperationException: переменная 'p' типа" Compliance.DataHub.Model.Entities.Order.Order "указана из области действия", но она не определена ".

Запрос пытается выполнить внутреннее соединение трех объектов и получить все объекты заказа, чей идентификатор заказа соответствует списку предоставленных ему заказов. Затем он создает группу на основе orderId и получает последнюю версию TradedQuantity из объекта orderEvents. LatestTradedQuantity будет TradedQuantityFrom последнего события OrderEvent. На данный момент последний orderevent может рассматриваться как тот, который имеет наибольшее значение OrderEventId.

Все, что я хочу сделать, это сохранить результат запроса в список объектов. Я хочу сгруппировать результат по SourceOrderIdentifier в качестве ключа, и для каждого ключа я хочу получить TotalTradedQuantity последнего orderEvent.

1 Заказ может иметь много OrderRevisions. 1 OrderRevision может иметь много orderEvents.

Может ли кто-нибудь помочь, пожалуйста?

0 ответов

Другие вопросы по тегам