У меня есть метод HttpPost в контроллере API, который принимает в качестве параметра сложный объект. Этот сложный объект имеет объект типа класса «Бюджет» (это главная таблица в базе данных) и список класса «BudgetDetail» (это детали основного класса).
Мне нужно вставить объект класса «Бюджет» в основную таблицу, а затем вставить список класса «BudgetDetail» в таблицу сведений.
Это метод HttpPost контроллера API:
[HttpPost]
public IHttpActionResult CreateBudget(NewBudget newBudget)
{
var budget = new Budget
{
DateOfIssue = newBudget.Budget.DateOfIssue,
VehicleId = newBudget.Budget.VehicleId,
BudgetAccepted = newBudget.Budget.BudgetAccepted
};
_context.Budgets.Add(budget);
foreach (var detail in newBudget.BudgetDetails)
{
var detailBudget = new BudgetDetail
{
//BudgetId = Here i need to get id of the Budget table that i inserted before
ProductId = detail.ProductId,
Price = detail.Price,
Quantity = detail.Quantity,
Iva = detail.Iva,
Total = detail.Total
};
_context.BudgetDetails.Add(detailBudget);
}
_context.SaveChanges();
return Ok();
}
Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь вставить в таблицу «BudgetDetails», значение BudgetId основной таблицы равно нулю. Как я могу вставить в основную таблицу (Budget) и получить идентификатор этой таблицы (BudgetId) для вставки в таблицу сведений (BudgetDetails).
Это класс, который находится в параметре:
public class NewBudget
{
public Budget Budget{ get; set; }
public List<BudgetDetail> BudgetDetails{ get; set; }
}
Это мой бюджетный класс (главная таблица):
public class Budget
{
public int Id { get; set; }
public DateTime DateOfIssue { get; set; }
public int VehicleId { get; set; }
public bool BudgetAccepted { get; set; }
}
Это мой класс BudgetDetail (таблица сведений):
public class BudgetDetail
{
public int Id { get; set; }
public int BudgetId { get; set; }
public int ProductId { get; set; }
public byte Quantity { get; set; }
public int Price { get; set; }
public int Iva { get; set; }
public int Total { get; set; }
}
Я буду очень благодарен за любые предложения, которые вы мне дадите.