bug汇总 (EF,Mvc,Wcf)

时间:2021-01-20 21:05:38

此博客用于在开发过程总bug及其解决方案的记录。

1。

异常信息:  ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

错误分析:出现这种异常,就是在ef操作的过程中,有两个对象的主键相同了。网上有跳过这种检查的办法,但是这不是解决异常的根本 ,我们需要对代码进行分析。

错误代码:在foreach 里面循环生成可能是一个父对象的语句造成了此异常,从红色部分可以看出在循环中可能生成多个对象。

 foreach (var l in changedContentList)
                {
                      if (l.CL_Type == "0" || l.CL_Type == "1" || l.CL_Type == "2")
                    {
                         var parent = model.ContentList.SingleOrDefault(n => n.CL_ID == l.CL_OriginalID);
                          parent.CL_Status = "0";
                                               }
                        model.ContentList.AddObject(l);
                    }
                    else
                    {
                        if (l.CL_Type == "3")
                        {

                            model.ContentList.AddObject(l);
                        }
                    }

                }

  解决方案:知道了具体的原因我们在修改代码就简单的多了。 在循环的外面加以List 没生成一个父对象就把父对象存在list里面。在生成对象之前判断是否存在父对象。

2.Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

excel导入数据库时,如果是在64位系统上,需要把主程序上的应用程序池改为可以以32位系统运行。