使用InsertAllOnSubmit将列表对象更新到数据库

时间:2019-05-24 03:15:06

标签: c# .net linq asp.net-web-api

我试图使用Linq 2 Sql使用InserAllOnSubmit方法将更改保存到数据库,它既不插入记录也不引发错误/异常。 如果我在代码中有任何错误,请帮助我。

谢谢。

public void UpdateCoachingAssessmentInfo(CoachingAssessmentViewModel model)
    {
        Guid userGuid = model.UserGuid;
        try
        {
            using (var ctxAdmin = new MemberDataContext(ConfigurationManager.ConnectionStrings[Constants.CONFIG_KEY_MEMBER_CONNECTION_STRING].ToString()))
            {
                List<CAT> userCat = new List<CAT>();
                List<QandR> userQr = model.QuestionResponseIds;
                foreach (var x in userQr)
                {
                    CAT objCAT = new CAT();
                    objCAT.userGuid = model.UserGuid;
                    objCAT.Question_Id = x.QuestionId;
                    if (x.OptionId != null && x.OptionId != 0)
                    {
                        objCAT.Option_Id = x.OptionId;
                        objCAT.Option_Response = null;
                    }
                    else
                    {
                        objCAT.Option_Response = x.OptionResponse ?? null;
                        objCAT.Option_Id = null;
                    }

                    objCAT.createDate = DateTime.Now;
                    objCAT.updateDate = DateTime.Now;
                    userCat.Add(objCAT);
                }
                ctxAdmin.CATs.InsertAllOnSubmit(userCat);
            }
            UpdateCoachingAssessmentEligibility(userGuid);
        }

        catch (Exception ex)
        {
            throw new Exception("Unable to save changes to db.", ex);
        }

    }

1 个答案:

答案 0 :(得分:1)

您应在ctxAdmin.CATs.SubmitChanges()之后添加ctxAdmin.CATs.InsertAllOnSubmit(userCat)

根据documentation

  

在调用SubmitChanges之后,添加的实体才会出现在查询结果中。

让我知道是否有帮助。