当我尝试清除集合(调用.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 删除项目,但我觉得我的代码不会那么干净。有没有办法通过清除集合来实现这一点?