【发布时间】:2013-07-24 21:56:28
【问题描述】:
当我尝试清除集合(调用 .Clear)时,我收到以下异常:
保存不为其关系公开外键属性的实体时发生错误。 EntityEntries 属性将返回 null,因为无法将单个实体标识为异常源。通过在实体类型中公开外键属性,可以更轻松地处理保存时的异常。有关详细信息,请参阅 InnerException。
内部异常是:
“User_Availability”关联集中的关系处于“已删除”状态。给定多重约束,相应的“User_Availability_Target”也必须处于“已删除”状态。
用户看起来像这样:
....
ICollection<Availability> Availability { get; set; }
可用性如下所示:
int ID { get; set; }
User User { get; set; }
DateTime Start { get; set;
DateTime End { get; set; }
配置如下:
HasMany(x => x.Availability).WithRequired(x => x.User);
HasRequired(x => x.User).WithMany(x => x.Availability);
导致问题的代码是:
user.Availability.Clear();
我查看了其他替代方法,例如使用 DbSet 删除项目,但我觉得我的代码不会那么干净。有没有办法通过清除集合来完成此操作?
【问题讨论】:
标签: c# entity-framework ef-code-first entity-framework-5