У меня проблемы с установлением отношений с EF Core.
Я не знал, как правильно его искать, поэтому я не нашел то, что мне нужно, но я где-то получил.
У меня есть два класса:
Расход:
public class Expense : Entity
{
public string Title { get; set; }
public string Description { get; set; }
public decimal Amount { get; set; }
public List<ExpenseType> Types { get; set; }
public ValidationResult ValidationResult { get; private set; }
public bool IsValid
{
get
{
var fiscal = new ExpenseIsValidValidation();
ValidationResult = fiscal.Valid(this);
return ValidationResult.IsValid;
}
}}
ExepenseType:
public class ExpenseType : Entity
{
#region properties
public string Name { get; private set; }
public string Description { get; private set; }
public ValidationResult ValidationResult { get; private set; }
public bool IsValid
{
get
{
var fiscal = new ExpenseTypeIsValidValidation();
ValidationResult = fiscal.Valid(this);
return ValidationResult.IsValid;
}
}}
Во время ToListAsync в ExpenseType EF добавляет столбец "CostId" кзапрос, но этот столбец не существует.
В моей базе данных есть три таблицы: одна для каждого класса и одна для связи.(Expense, ExpenseType и Expense_ExpenseType)
При поиске решения здесь, в StackOverflow, я обнаружил, что у меня должен быть класс для третьей таблицы.Вот оно:
public class Expense_ExpenseType
{
public int ExpenseId { get; set; }
public Expense Expense { get; set; }
public int ExpenseTypeId { get; set; }
public ExpenseType ExpenseType { get; set; }
}
Моя идея заключается в том, что у меня может быть ExpenseType без Expense, и я могу иметь Expense без ExpeseType или с таким количеством, сколько я хочу.
Таким образом, ExpenseType не имеет никаких расходов.
Я не уверен, что мне теперь делать.Должен ли я использовать карту с помощью optionsBuilder?Как?Должен ли я переписать базу данных?