如何使用 lambda 表达式和 linq 将包含另一个实体模型类型列表的实体模型添加到带有 EF 的数据库中
How to add Entity Model containing a list of another Entity Model type to Database with EF using lambda expressions and linq
我有一个实体模型,其中包含另一个实体模型类型的列表,我需要立即将包含另一个模型列表的记录添加到数据库
当我使用 ForEach
将每个道具添加到道具列表时发生空引用异常
public IActionResult RegisterUnitConfirm(InventoryItemUnitViewModel model)
{
if (ModelState.IsValid)
{
InventoryItemUnit unit = new InventoryItemUnit()
{
Title = model.Title,
Item_Id = model.Item_Id,
};
model.Props.ForEach(x => unit.Props.Add(new InventoryItemUnitProp()
{
Name = x.Name,
Value = x.Value,
Category_Id = x.Category_Id,
}));
DB.Add(unit);
if (DB.SaveChanges() != 0)
{
TempData["GlobalSuccess"] = "";
return RedirectToAction("UnitSummery");
}
TempData["GlobalError"] = "";
return RedirectToAction("UnitSummery");
}
TempData["GlobalError"] = "Model State is invalid";
return RedirectToAction("UnitSummery");
}
你应该在创建新单位时创建新道具
像这样:
InventoryItemUnit unit = new InventoryItemUnit()
{
Title = model.Title,
Item_Id = model.Item_Id,
Props=new List<Props>()
};
希望有用
我有一个实体模型,其中包含另一个实体模型类型的列表,我需要立即将包含另一个模型列表的记录添加到数据库 当我使用 ForEach
将每个道具添加到道具列表时发生空引用异常 public IActionResult RegisterUnitConfirm(InventoryItemUnitViewModel model)
{
if (ModelState.IsValid)
{
InventoryItemUnit unit = new InventoryItemUnit()
{
Title = model.Title,
Item_Id = model.Item_Id,
};
model.Props.ForEach(x => unit.Props.Add(new InventoryItemUnitProp()
{
Name = x.Name,
Value = x.Value,
Category_Id = x.Category_Id,
}));
DB.Add(unit);
if (DB.SaveChanges() != 0)
{
TempData["GlobalSuccess"] = "";
return RedirectToAction("UnitSummery");
}
TempData["GlobalError"] = "";
return RedirectToAction("UnitSummery");
}
TempData["GlobalError"] = "Model State is invalid";
return RedirectToAction("UnitSummery");
}
你应该在创建新单位时创建新道具
像这样:
InventoryItemUnit unit = new InventoryItemUnit()
{
Title = model.Title,
Item_Id = model.Item_Id,
Props=new List<Props>()
};
希望有用