Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用lambda表达式和linq将包含其他实体模型类型列表的实体模型添加到具有EF的数据库中_C#_Entity Framework_Asp.net Core_Ef Core 2.2_Entity Model - Fatal编程技术网

C# 如何使用lambda表达式和linq将包含其他实体模型类型列表的实体模型添加到具有EF的数据库中

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) {

我有一个实体模型,其中包含一个属于另一个实体模型类型的列表,我需要立即向数据库中添加一个包含另一个模型列表的记录 当我使用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,                       

我希望这将是有用的

你应该在创建新单位时创建新道具

像这样:

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属性修复了我的问题,谢谢您的帮助。
                };