У меня есть две таблицы:
public class Customer
{
public string Id{ get; set; }
public string Name { get; set; }
[DataType(DataType.Currency), Column(TypeName = "decimal(18,2)")]
public decimal Balance { get; set; }
[Display(Name ="Time Registered")]
public DateTime TimeRegistered { get; set; }
[InverseProperty("Beneficiary")]
public ICollection<WalletTransaction> TransactionsReceived { get; set; }
[InverseProperty("Sender")]
public ICollection<WalletTransaction> TransactionsInitiated { get; set; }
}
и
public class WalletTransaction
{
public int Id { get; set; }
public TransactionType TrasactionType { get; set; }
public decimal Amount { get; set; }
public string SenderId { get; set; }
public string ReceipientId { get; set; }
[ForeignKey("SenderId")]
public Customer Sender { get; set; }
[ForeignKey("ReceipientId")]
public Customer Beneficiary { get; set; }
}
, а типы транзакций могут быть в следующем перечислении
public enum TransactionType
{
Deposit=1,Transfer=2,Withdrawal=3
}
Теперь мне нужно получить сводные данные по каждой транзакции клиента, разбитые на разные типы транзакций следующим образом:
Name of CustomerA
Deposit=Sum of the amount value in all his transactions of transaction type Deposit
Transfer=Sum of the amount value in all his transactions of transaction type Transfer
Withdrawal=Sum of the amount value in all his transactions of transaction type Withdrawal
Name of CustomerB
Deposit=Sum of the amount value in all his transactions of transaction type Deposit
Transfer=Sum of the amount value in all his transactions of transaction type Transfer
Withdrawal=Sum of the amount value in all his transactions of transaction type Withdrawal
Name of CustomerC
Deposit=Sum of the amount value in all his transactions of transaction type Deposit
Transfer=Sum of the amount value in all his transactions of transaction type Transfer
Withdrawal=Sum of the amount value in all his transactions of transaction type Withdrawal
etc.
Я не понимаю, как этого добиться. Я думаю, что мне нужно создать запрос linq для присоединения к таблице клиентов и таблица транзакций, чтобы получить имя клиента из таблицы клиентов. Затем сгруппируйте транзакции по клиенту, а также по типу транзакции. Я не уверен, правильно это или нет, но даже если это так, я не знаю, go об этом.
Я пытался сделать это
var customerTransactions = await _context.Customers
.Include(c => c.TransactionsInitiated)
.Select(a => new
{
//Looking for how to break down he transactions by the transaction types here
})
.OrderByDescending(s=>s.TotalAmount)//Not sure too how to order the result
.ToListAsync();
Пожалуйста, помогите мне о том, как их решить. Спасибо