0
我有一個HttpPost方法進入一個API控制器,它將一個複雜對象作爲參數。這個複雜的對象具有類'預算'(即數據庫中的主表)類型的對象,並且它具有'BudgetDetail'列表(這是主類的詳細信息)。將記錄插入到具有與實體框架和MVC的主/明細關係的表中
我需要插入的「預算」在主表類的對象,然後插入詳細信息表中
這是API控制器的HttpPost方法「BudgetDetail」類的列表:
[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的值爲null。 我如何插入主表(預算),並獲得該表(BudgetId)插入細節表(BudgetDetails)的ID。
這是對參數的類:
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; }
}
我會非常感謝您給我的任何建議。
如果你在'context.Budgets.Add(budget)'之後調用'.SaveChanges()',那麼'budget.Id'將包含更新值 –