EF错误代码第一个错误3004

本文关键字:3004 错误 第一个 错误代码 EF | 更新日期: 2023-09-27 18:10:09

我已经创建了EF设计师这个简单的图表和代码已经生成,但是当我生成解决方案时,我得到这个错误:

错误1错误3004:problicome de fragments de mappage partir de la ligne 84:Aucun mappage n'est spsamcifi pour les propriacimetsamis intDB。tpintDB_id_tpint为犹太intdb。一个完整的研究小组(PK),一个有效的研究小组,一个完整的研究小组。[entit]是类型[helpdeskModel.intDB]

这是一个链接到我的图表的图像

代码如下:

    public partial class helpdeskEntities : DbContext
    {
        public helpdeskEntities()
            : base("name=helpdeskEntities")
        {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
        public DbSet<intDB> intDBs { get; set; }
        public DbSet<tpintDB> tpintDBs { get; set; }
    }
}


     public partial class intDB
{
    public int ID { get; set; }
    public Nullable<System.DateTime> debint { get; set; }
    public Nullable<System.DateTime> finint { get; set; }
    public Nullable<int> id_int { get; set; }
    public decimal id_tpint { get; set; }
    [ForeignKey("id_tpint")]
    public virtual tpintDB tp_intDB { get; set; }
}
    }


      public partial class tpintDB
    {
        public decimal id_tpint { get; set; }
        public string libelle { get; set; }
        public string desc_tpint { get; set; }
        public virtual ICollection<intDB> intDBs { get; set; }
    }
    }

My new intDB Model:

public partial class intDB
{
    public int ID { get; set; }
    public Nullable<System.DateTime> debint { get; set; }
    public Nullable<System.DateTime> finint { get; set; }
    public Nullable<int> id_int { get; set; }
    [ForeignKey("id_tpint")]
    public virtual int tp_intDB { get; set; }
}

EF错误代码第一个错误3004

如果没有一段代码(即实体类),我们无法确定问题是什么。但问题对我来说似乎很明显:在intdb实体中,你需要这个属性:public virtual tpintDB tpintDB { get; set; },在tpintDB中需要public ICollection <intDB> intDBList { get; set; }。此外,请确保启用自动迁移或自己添加迁移。

我更新了我的答案,以便您可以更好地了解实体应该如何声明。

public partial class intDB
{
    public int ID { get; set; }
    public Nullable<System.DateTime> debint { get; set; }
    public Nullable<System.DateTime> finint { get; set; }
    public Nullable<int> id_int { get; set; }
    public int id_tpint { get; set; }
    [ForeignKey("id_tpint")]
    public virtual tpintDB tp_intDB { get; set; }
}

更新2

同样,tpintDB需要看起来像这样。

public partial class tpintDB
{
    public int id_tpint { get; set; }
    public string libelle { get; set; }
    public string desc_tpint { get; set; }
    public virtual ICollection<intDB> intDBs { get; set; }
}

可以把iccollection看作是tpintDB记住哪些intDB对象引用它的工具。我的英语现在不是最好的,但我希望你能理解:D另外,我不保证这是最好的解决方案,但它在一个项目中为我的30多个实体工作,我认为它非常干净。

请检查Id_tpint的DataType是否相同。此外,您必须为intDB和tpintDB定义主键Id_tpint和外键Id_tpint。