В базе данных две таблицы Wallet,Transaction и AspNetUser , надо сделать историю переводов, только надо вместо ID отправителя и получателя вывести их имена. Вывод информаций сделал, только вот не могу понят как связать ID из Transaction c AspNetUser через ID из Wallet. Принцип по кторому можно сделать такое знаю из SQL но как провернуть такое в LINQ пока не прецтавляю. Помогите кто знает как такое можно устройть.
WalletController.cs
[HttpGet]
[Route("transactions")]
public List<Transaction> GetTransactions()
{
var TransactionList = new List<Transaction>();
var userId = _userManager.GetUserId(User);
var listId = _context.Users.Include(x => x.Wallets).FirstOrDefault(x => x.Id == userId)?.Wallets.Select(x => x.Id).ToList();
TransactionList = _context.Transactions.Where(x => listId.Contains(x.SourceWalletId) || listId.Contains(x.DestinationWalletId)).ToList();
TransactionList = TransactionList.Distinct().ToList();
return TransactionList;
}
Transaction.cs
using System;
namespace BlazorPaymentSystem.Server.Models
{
public class Transaction
{
public Guid Id { get; set; }
public Guid SourceWalletId { get; set; }
public Guid DestinationWalletId { get; set; }
public decimal Amount { get; set; }
public DateTime Date { get; set; }
}
}
ApplicationDbContext.cs
namespace BlazorPaymentSystem.Server.Data
{
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
{
public ApplicationDbContext(
DbContextOptions options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
{
}
public DbSet<Wallet> Wallets { get; set; }
public DbSet<Transaction> Transactions { get; set; }
}
}