使用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>();
}
}
答案 0 :(得分:0)
您需要在保存之前将Child添加到相应的数据库集。
根据您的命名方式,尝试db.Childs.Add(record);
或等效内容。