违反了EF Multiplicity约束。关系的作用......具有多重性1或0..1

时间:2016-05-27 18:27:46

标签: c# mysql asp.net-mvc entity-framework

我收到错误

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; }

    }

我不知道如何解决这个问题。

修改 数据库中的某些行

database

第一行是父级,因此其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);
        }

1 个答案:

答案 0 :(得分:-1)

我认为您的ICollection<BegrotingsCategorie> children媒体资源会在BegrotingsCategorie课程中为您提供噪音。在代码中的某处定义了BegrotingsCategorie的一个或零到一的递归关系。但是,您试图通过将您的媒体资源BegrotingsCategorie声明为children来在您的班级中使用ICollection s的一对多关系。如果你真的不需要它,你可能想要删除children课程中的BegrotingsCategorie属性。这可能是一种可能的解决方法。