Группировать по нескольким таблицам и при этом иметь доступ к исходному запросу?

Я пытался выполнить объединение, а затем группу. Моя сгруппированная информация, которая возвращается, великолепна! работает как шарм, но мне по-прежнему нужен доступ к значениям вне группировки, если это имеет смысл..

Я нашел пример в stackoverflow, который, вероятно, объясняет это лучше

var query = from c in context.Contacts
            join o in context.Orders on c.Id equals o.CustomerId
            select new 
            { 
                Contact = c, 
                Order = o 
            } into ContactAndOrder
            group ContactAndOrder by ContactAndOrder.Order.Id into g
            select new 
            { 
                g.Key, 
                ContactWhatever = g.Sum(co => co.Contact.Whatever), 
                OrderWhatever = g.Sum(co => co.Order.Whatever) 
            };

. Теперь это, кажется, отлично работает, проблема в моей ситуации в том, что co.Order.Whatever является строкой, поэтому я получаю сообщение об ошибке, говорящее о том, что невозможно преобразовать строку в int, это я понимаю, поскольку агрегатная функция Sum ожидает int....

Мой вопрос действительно заключается в том, существует ли агрегатная функция или что-то похожее на то, что я могу получить значение co.Order.Whatever (строка в моем случае)

Проблема в том, что после завершения группы я теряю "с" и "о"

. Я надеюсь, что кто-то может помочь.

заранее спасибо

6
задан abatishchev 14 June 2012 в 06:30
поделиться