Таким образом, проблема в том, что драйвер MongoDB C # должен преобразовывать ваше лямбда-выражение в агрегацию.Вы можете запустить profiler , чтобы посмотреть, как он переводится.Итак, ваш код с:
x => x[CounterpartyFields.DEBT].AsInt32
переведен на:
{
"$group" : {
"_id" : 1,
"__result" : {
"$sum" : "$debt.AsInt32"
}
}
}
И это не то, что вы ищете.
Чтобы исправить это, вы должны получитьизбавиться от AsInt32
и сделать его компилируемым, вы можете использовать следующий код:
.Sum(x => (int)x[CounterpartyFields.DEBT]);