public async Task<WalletTrans> getCredits(int id)
{
var credit = await _context.walletTrans.ToAsyncEnumerable().Where(r => r.Id == id).Sum(s => s.quantity);
return credit;
}
У меня есть этот код выше, использующий ядро C# .net, которое предположительно возвращает сумму поля в таблице.
Но у меня такая ошибка.
"Cannot implicitly convert type 'decimal' to 'ProjectName.Models.ModelName' [ProjectName]"
Спасибо за ответ. Но я все еще не понимаю. Вы можете дать мне образец?





образец, как вы просили:
public async Task<decimal> getCredits(int id)
{
var credit = await _context.walletTrans.ToAsyncEnumerable().Where(r => r.Id == id).Sum(s => s.quantity);
return credit;
}
как я могу вернуть это как JSon?
вы имеете в виду строку в формате json или какой-то проект из библиотеки newtone? Да, вы можете, просто верните не кредит, а новый JObject (кредит) или что-то еще.
Взгляните на следующий поток SO: stackoverflow.com/questions/6201529/…
Это ответит на мой вопрос о том, как я могу вернуть его как Объект JSON
public async Task<object> getCredits(int id){
dynamic response = new JObject();
try {
decimal credit = await _context.walletTrans.ToAsyncEnumerable().Where(r => r.Id == id).Sum(s => s.quantity);
response.Credit = credit;
return response;
} catch (Exception e) {
response.Error = e;
return response;
}
}
Спасибо за вашу помощь: D
Я бы по возможности избегал динамических и просто использовал правильные типы. public async Task<JObject>…, а затем для заполнения значений, response["Credit"] = credit или response["Error"] = e.
Тип возврата вашего метода -
WalletTrans, но вы возвращаете значениеdecimalиз функцииSum(). Измените тип возвращаемого значения какdecimalили присвойте значение суммы любому свойствуdecimal, которое имеет классWalletTrans.