我一直在阅读有关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"); } }
这在约会表中生成两个外键,即SCHEDULEID和Schedule_Id1.
如何告诉EF不要创建Schedule_Id1
解决方法
试试这个:
Hasrequired(a => a.Schedule).WithMany(x=> x.Appointment).Map(x => x.MapKey("SCHEDULEID"));
希望这有帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。