[英]Insert records into tables with master/detail relationship with Entity Framework and MVC
我在API控制器中有一個HttpPost方法,它將復雜對象作為參數。 此復雜對象的對象類型為“預算”類(即數據庫中的主表),並且具有“預算細節”類的列表(即主類的詳細信息)。
我需要在主表中插入“預算”類的對象,然后在詳細信息表中插入“預算細節”類的列表
這是API控制器的HttpPost方法:
[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。 如何插入主表(預算)並獲取該表的ID(預算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類(Detail表):
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; }
}
對於您給我的任何建議,我將不勝感激。
在CreateBudget
方法中,更改結尾。 就像是:
context.BudgetDetails.Add(detailBudget);
}
_context.SaveChanges();
return detailBudget.Id;
它為您提供了從EF創建的detailBudget ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.