如何使用 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>()
                };

希望有用