我收到错误
Multiplicity constraint violated. The role 'BegrotingsCategorie_children_Source' of the relationship 'NET.DAL.EF.BegrotingsCategorie_children' has multiplicity 1 or 0..1.
尝试从我的数据库中读取'BegrotingsCategorie'时。 这段代码触发了异常
public BegrotingsCategorie ReadBegrotingsCategorie(int begrotingsCategorieId)
{
return _ctx.Begrotingscategorieen.Find(begrotingsCategorieId);
}
我的BegrotingsCategorie模型看起来像这样
[Table("tblBegrotingsCategorieen")]
public class BegrotingsCategorie
{
[Key]
public int BegrotingsCategorieId { get; set; }
public string Informatie { get; set; }
public double Uitgaven { get; set; }
public Begroting Begroting { get; set; }
public BegrotingsCategorie Parent { get; set; }
public double Percentage { get; set; }
public double BerekendLoon { get; set; }
public virtual ICollection<BegrotingsCategorie> children { get; set; }
public virtual ICollection<Actie> Acties { get; set; }
}
我不知道如何解决这个问题。
修改 数据库中的某些行
第一行是父级,因此其Parent_BegrotingsCategorieId为NULL, 它有一个带有Parent_BegrotingsCategorieId 1的孩子,它本身也有多个孩子所以他们有Parent_BegrotingsCategorieId 2
我像这样添加我的数据
public BegrotingsCategorie AddBegrotingsCategorie(string informatie, Begroting begroting, BegrotingsCategorie parentCategorie)
{
BegrotingsCategorie begrotingsCategorie = new BegrotingsCategorie()
{
Informatie = informatie,
Begroting = begroting,
Parent = parentCategorie
};
return _repo.CreateBegrotingsCategorie(begrotingsCategorie);
}
答案 0 :(得分:-1)
我认为您的ICollection<BegrotingsCategorie> children
媒体资源会在BegrotingsCategorie
课程中为您提供噪音。在代码中的某处定义了BegrotingsCategorie
的一个或零到一的递归关系。但是,您试图通过将您的媒体资源BegrotingsCategorie
声明为children
来在您的班级中使用ICollection
s的一对多关系。如果你真的不需要它,你可能想要删除children
课程中的BegrotingsCategorie
属性。这可能是一种可能的解决方法。