实体框架“数据库优先”不生成外键

时间:2015-07-08 08:50:01

标签: c# asp.net entity-framework-6 visual-studio-2015

我使用了实体框架逆向工程,但似乎错过了一些外键关系。 这是我的数据库sql代码和生成的类:

CREATE TABLE [dbo].[rapportAnomalie] (
[code_rapport] INT          IDENTITY (1, 1) NOT NULL,
[date_rapport] DATETIME     NOT NULL,
[etat]         VARCHAR (50) NOT NULL,
[code_agence]  INT          NOT NULL,
PRIMARY KEY CLUSTERED ([code_rapport] ASC),
CONSTRAINT [FK_rapportAnomalie_ToTable] FOREIGN KEY ([code_agence]) REFERENCES [dbo].[agence] ([code_agence])


CREATE TABLE agence
(
[code_agence] INT NOT NULL PRIMARY KEY, 
[intitule_agence] VARCHAR(100) NOT NULL, 
[adresse_agence] VARCHAR(100) NOT NULL
)

Agence.cs:

[Table("agence")]
public partial class agence
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int code_agence { get; set; }

    [Required]
    [StringLength(100)]
    public string intitule_agence { get; set; }

    [Required]
    [StringLength(100)]
    public string adresse_agence { get; set; }
 }
}

和Rapport.cs:

[Table("rapportAnomalie")]
public partial class rapportAnomalie
{
    [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; }
}
}
那可能是什么问题?

2 个答案:

答案 0 :(得分:2)

可能是一个重复的问题,其中包含以下链接The question posed on stack over flow

以上链接的相关答案我​​觉得对你有用EF Reveres Engineering

祝你好运

答案 1 :(得分:0)

我最后编辑了手动添加forgein键注释:

[Table("rapportAnomalie")]
public partial class rapportAnomalie
 {
    [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; }
    [ForeignKey("code_agence")]
    public agence agence { get; set; }
 }
}