EF将子项添加到现有父项时抛出DbUpdateConcurrencyException

时间:2015-11-16 12:10:54

标签: c# entity-framework

使用EF 6.0,我的应用程序中有以下代码

using (var db = new TrackingEntities())
{

   foreach (var p in points)
   {
      var parent= db.Parents.Find(points[0].Imei);
      var record = new Child()
      {               
          .....
      };

      parent.Children.Add(record);
      db.SaveChanges();
   }
}

然后抛出

  

其他信息:存储更新,插入或删除语句   影响了意外的行数(0)。实体可能已经存在   自实体加载后修改或删除。刷新   ObjectStateManager条目。

更新

发生了一些奇怪的事情。当我在开始调试时测试代码时,它工作正常并将子代添加到父代。但是当我将它从调试中断开并再次运行代码时,它会引发上述错误。

以下是模型:

 public partial class Child
    {

        public long Id { get; set; }
        public string ParentPK { get; set; }

        public virtual TB_Parent TB_Parent { get; set; }
    }

     public partial class TB_Parent
    {

        public long ParentID { get; set; }

        public virtual ICollection<Child> Children { get; set; }

         public TB_Parent()
        {
            this.Children  = new HashSet<Child>();
        }

    }

1 个答案:

答案 0 :(得分:0)

您需要在保存之前将Child添加到相应的数据库集。

根据您的命名方式,尝试db.Childs.Add(record);或等效内容。