如何使用Entity Framework将外键设置为主键?

时间:2017-04-06 15:04:15

标签: c# entity-framework ef-fluent-api

我正在尝试使用Entity Framework和流畅的api将外键设置为主键。

modelBuilder.Entity<Z>()
            .HasRequired(m => m.X)
            .WithRequireDependent(m => m.Y)
            .WillCascadeOnDelete();

我的课程:

public class Z
{
        [Key,ForeignKey("X")]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public RentCar X { get; set; }
        public DateTime AIA_KM { get; set; }
        public DateTime AIA_FEC { get; set; }
}

之前我检查过这个StackoverFlow问题Entity Framework Foreign Key as Primary Key Code First但对我不起作用。

谢谢。

1 个答案:

答案 0 :(得分:2)

RentCar实体中添加Z的PK并添加以下配置:

public class Z
{
        public int RentCarId { get; set; }//Add this

        public RentCar X { get; set; }
        public DateTime AIA_KM { get; set; }
        public DateTime AIA_FEC { get; set; }
}

并添加此配置:

modelBuilder.Entity<Z>().HasKey(t => t.RentCarId );// Add this
modelBuilder.Entity<Z>()
            .HasRequired(m => m.X)
            .WithRequireDependent(m => m.Y)
            .WillCascadeOnDelete();

从此link

  

选择WithRequiredPrincipal将使您拥有该实体   配置主体,意味着它包含主键   关系。选择WithRequiredDependent将成为实体   您正在配置依赖项,这意味着它将具有   关系的外键。

所以按惯例,你依赖实体的PK(Z)将成为一对一关系的FK

相关问题