无效的列实体框架

本文关键字:框架 实体 无效 | 更新日期: 2023-09-27 18:01:44

我先用实体框架代码生成我的模型类。然而,它显示一个异常,每当我调用db.Model.ToList();例外:{"Invalid column name 'rapportAnomalie_code_rapport'."}

我没有这样一列,我不知道它是从哪里来的。我的数据库:

refAnomalie。sql :

CREATE TABLE [dbo].[refAnomalie] (
[code_anomalie]    INT            IDENTITY (1, 1) NOT NULL,
[libelle_anomalie] NVARCHAR (100) NOT NULL,
[score_anomalie]   INT            NOT NULL,
[classe_anomalie]  NVARCHAR (100) NOT NULL,
CONSTRAINT [PK_dbo.refAnomalie] PRIMARY KEY CLUSTERED ([code_anomalie] ASC)
);

rapportAnomalie。sql:

 CREATE TABLE [dbo].[rapportAnomalie] (
[code_rapport] INT           IDENTITY (1, 1) NOT NULL,
[date_rapport] DATETIME      NOT NULL,
[etat]         NVARCHAR (50) NOT NULL,
[code_agence]  INT           NOT NULL,
CONSTRAINT [PK_dbo.rapportAnomalie] PRIMARY KEY CLUSTERED ([code_rapport]    ASC),
CONSTRAINT [FK_dbo.rapportAnomalie_dbo.agence_code_agence] FOREIGN KEY    ([code_agence]) REFERENCES [dbo].[agence] ([code_agence]) ON DELETE CASCADE
  );

 GO
 CREATE NONCLUSTERED INDEX [IX_code_agence]
  ON [dbo].[rapportAnomalie]([code_agence] ASC);

refAnomalie.cs:

 [Table("refAnomalie")]
    public partial class refAnomalie
    {
        [Key]
        public int code_anomalie { get; set; }
        [Required]
        [StringLength(100)]
        public string libelle_anomalie { get; set; }
        public int score_anomalie { get; set; }
        [Required]
        [StringLength(100)]
        public string classe_anomalie { get; set; }
    }
}

rapportanomaly .cs:

 [Table("rapportAnomalie")]
    public partial class rapportAnomalie
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public rapportAnomalie()
        {
            ligneRapportAnomalie = new HashSet<ligneRapportAnomalie>();
        }
        [Key]
        public int code_rapport { get; set; }
        public DateTime date_rapport { get; set; }
        [Required]
        [StringLength(50)]
        public string etat { get; set; }
        public int code_agence { get; set; }
        public virtual agence agence { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<ligneRapportAnomalie> ligneRapportAnomalie { get; set; }

        public List<refAnomalie> listeRefAnomalie { get; set; }
        public List<ligneRapportAnomalie> listeLigneRapportAnomalie { get; set; }
    }
}

我在互联网上寻找了一些解决方案,例如添加Database.SetInitializer<InspectionBanqueContext>(null);或从sql server数据库删除迁移表,但没有工作。什么好主意吗?

无效的列实体框架

有设置初始化项的策略- http://www.codeproject.com/Articles/794187/Various-Strategies-to-Initialize-Database-in-Entit

Database.SetInitializer<TestContext>(new DropCreateDatabaseIfModelChanges<TestContext>()); - drop always

Database.SetInitializer<TestContext>(new CreateDatabaseIfNotExists<TestContext>());-只在不存在的情况下创建。所以它的数据库在那里它不会改变它-使用更新数据库如果你的数据库有你需要的数据- http://coding.abel.nu/2012/03/ef-migrations-command-reference/

因此,您需要使用包管理器控制台运行powershell命令来更新您的上下文