3

EF Code First が重複した外部キ​​ーを生成するという SO の投稿を読んでいて、コードにソリューションを適用しようとしましたが、コードを修正できませんでした。

ここに私のクラスがあります

 public class Schedule
{
    public int Id { get; set; }
    public ICollection<Appointment> Appointments { get; set; }
}

public class Appointment
{
    public int Id { get; set; }
    public Schedule Schedule { get; set; }
}

public class ScheduleConfiguration : EntityTypeConfiguration<Schedule>
{
    public ScheduleConfiguration()
    {
        HasKey(s => s.Id);
        Property(s => s.Id).HasColumnName("SCHEDULEID");            
        ToTable("SCHEDULES");
    }        
}

public class AppointmentConfiguration : EntityTypeConfiguration<Appointment>
{
    public AppointmentConfiguration()
    {
        HasKey(a => a.Id);
        Property(a => a.Id).HasColumnName("APPOINTMENTID");            
        HasRequired(a => a.Schedule).WithMany().Map(x => x.MapKey("SCHEDULEID"));
        ToTable("APPOINTMENTS");
    }
}

appointmentsこれにより、テーブルにSCHEDULEIDとという2 つの外部キーが生成されますSchedule_Id1

作成しないようにEFに指示するにはどうすればよいですかSchedule_Id1

4

2 に答える 2

6

これを試してください:

HasRequired(a => a.Schedule).WithMany(x=> x.Appointment).Map(x => x.MapKey("SCHEDULEID"));

この助けを願っています。

于 2013-01-17T20:46:02.647 に答える
1

プロパティAppointmentsでInversePropertyデータアノテーションを使用できます

public class Schedule
{
    public int Id { get; set; }
    [InverseProperty("Schedule")]
    public virtual ICollection<Appointment> Appointments { get; set; }
}

public class Appointment
{
    public int Id { get; set; }
    public Schedule Schedule { get; set; }
}
于 2013-01-18T06:49:34.890 に答える