Я работаю над бэкэндом для моего углового приложения, и мне не хватает таблиц MoneyTransfers
и FixedMoneyTransfers
в моей базе данных.
Соответствующими объектами для этой проблемы являются BankAccount
, CostCentre
и MoneyTransfer
BankAccount
имеет два отдельных свойства типа List<MoneyTransfer>
(TransferReceipts и TransferDebits), а также одно List<FixedMoneyTransfer>
.
CostCentre
имеет два отдельных свойства типа List<MoneyTransfer>
(BudgetReceipt и BudgetDebits).
И, наконец, MoneyTransfer
имеет два отдельных BankAccounts
(Источник, Цель) и два отдельных CostCentres
(Источник, Цель). То же самое касается FixedMoneyTransfer
.
Может ли быть так, что EF трудно представить эти отношения в базе данных? Должен ли я изменить свою модель данных?
Заранее спасибо
См. Соответствующие файлы ниже:
DbContext:
public class AccountBookDbContext : DbContext
{
public DbSet<Depositor> Depositors { get; set; }
public DbSet<BankAccount> BankAccounts { get; set; }
public DbSet<CostCentre> CostCentres { get; set; }
public AccountBookDbContext(DbContextOptions<AccountBookDbContext> options) : base(options) { }
}
BankAccount.cs:
public class BankAccount
{
public int Id { get; set; }
public Depositor Depositor { get; set; }
public List<MoneyTransfer> TransferReceipts { get; set; }
public List<MoneyTransfer> TransferDebits { get; set; }
//other properties not shown
}
CostCentre.cs:
public class CostCentre
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<MoneyTransfer> BudgetReceipts { get; set; }
public List<MoneyTransfer> BudgetDebits { get; set; }
}
MoneyTransfer.cs:
public class MoneyTransfer
{
public int Id { get; set; }
public DateTime Date { get; set; }
public BankAccount SourceAccount { get; set; }
public CostCentre SourceCostCentre { get; set; }
public BankAccount TargetAccount { get; set; }
public CostCentre TargetCostCentre { get; set; }
public double Figure { get; set; }
public string Reference { get; set; }
}
FixedMoneyTransfer.cs:
public class FixedMoneyTransfer
{
public int Id { get; set; }
public BankAccount SourceAccount { get; set; }
public CostCentre SourceCostCentre { get; set; }
public BankAccount TargetAccount { get; set; }
public CostCentre TargetCostCentre { get; set; }
public string Reference { get; set; }
public double Figure { get; set; }
public int Frequency { get; set; }
public DateTime DueDate { get; set; }
}