拥有一个包含Depot
和Rayon
个实体的实体模型,这样每个Rayon
必须只与一个Depot
相关联,并且每个Depot
都可以关联零或更多Rayon
。
人造丝(0 .. *)< -------> (1)仓库
这是我的代码:
public void Update(Depot obj)
{
var testDepot = DepotContainer.DepotSet.FirstOrDefault(c => c.Id == obj.Id);
testDepot.Nom = obj.Nom;
testDepot.Zone = obj.Zone;
testDepot.Rayons = obj.Rayons;
DepotContainer.SaveChanges();
}
public partial class Depot
{
public Depot() { this.Rayons = new HashSet<Rayon>(); }
public int Id { get; set; }
public string Nom { get; set; }
public string Zone { get; set; }
public virtual ICollection<Rayon> Rayons { get; set; }
}
public partial class Rayon
{
public Rayon() { this.Article = new HashSet<Article>(); }
public int Id { get; set; }
public string Code { get; set; }
public string Description { get; set; }
public virtual Depot Depot { get; set; }
public virtual ICollection<Article> Article { get; set; }
}
保存更改时出现以下错误:
其他信息:保存未公开其关系的外键属性的实体时发生错误。 EntityEntries属性将返回null,因为无法将单个实体标识为异常源。通过在实体类型中公开外键属性,可以更轻松地在保存时处理异常。有关详细信息,请参阅InnerException。
内部执行
来自'DepotRayon'AssociationSet的关系处于'已删除'状态。给定多重约束,相应的“人造丝”也必须处于“已删除”状态。
答案 0 :(得分:0)
问题在于,软件仓库的多重性必须是(0 ... 1),因为当我从软件仓库中移除人造丝时,人造丝实体中的外键变为空,这是异常的原因