C# 如何使用lambda表达式和linq将包含其他实体模型类型列表的实体模型添加到具有EF的数据库中
我有一个实体模型,其中包含一个属于另一个实体模型类型的列表,我需要立即向数据库中添加一个包含另一个模型列表的记录 当我使用ForEach将每个道具添加到道具列表时,会发生空引用异常C# 如何使用lambda表达式和linq将包含其他实体模型类型列表的实体模型添加到具有EF的数据库中,c#,entity-framework,asp.net-core,ef-core-2.2,entity-model,C#,Entity Framework,Asp.net Core,Ef Core 2.2,Entity Model,我有一个实体模型,其中包含一个属于另一个实体模型类型的列表,我需要立即向数据库中添加一个包含另一个模型列表的记录 当我使用ForEach将每个道具添加到道具列表时,会发生空引用异常 public IActionResult RegisterUnitConfirm(InventoryItemUnitViewModel model) { if (ModelState.IsValid) {
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,
我希望这将是有用的你应该在创建新单位时创建新道具 像这样:
InventoryItemUnit unit = new InventoryItemUnit()
{
Title = model.Title,
Item_Id = model.Item_Id,
我希望它会有用您在哪一行获得空引用异常?另外,您是否尝试过使用调试器单步执行并检查模型的内容?异常发生在第9行,我尝试过调试,并且模型的内容不是空的只是为了澄清,您是说错误发生在这里:
model.Props.ForEach(x=>unit.Props.Add(new InventoryItemUnitProp())
该model.Props为空?您能给我们看一下您的模型的摘录吗?另外,如果您使用表单提交此操作,您也能给我们看一下吗?您在哪一行获得空引用异常?此外,您是否尝试过使用调试器检查模型的内容?异常发生在在第9行,我尝试了调试,模型的内容不是空的,只是为了澄清,您是说错误发生在这里:model.Props.ForEach(x=>unit.Props.Add(new InventoryItemUnitProp())
该模型.Props为空?您能给我们看一下您模型的摘录吗?另外,如果您使用表单提交此操作,您也能给我们看一下吗?初始化Props属性修复了我的问题,谢谢您的帮助。初始化Props属性修复了我的问题,谢谢您的帮助。
};