我正在尝试使用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但对我不起作用。
谢谢。
答案 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