我有约会下面的类:上的许多实体框架错误一对多的关系
public class Appointment
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int appointmentId { get; set; }
public int Mins { get; set; }
public DateTime StartDateTime { get; set; }
public string Note { get; set; }
//Navagation Properties
public CompanyInformation Company { get; set; }
public virtual ICollection<Service> Services { get; set; }
public UserProfile Customer { get; set; }
public UserProfile Staff { get; set; }
public int? ParentID { get; set; }
public Appointment ParentAppointment { get; set; }
}
和下面的服务类:
public class Service
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int serviceId { get; set; }
public string name { get; set; }
public string description { get; set; }
public decimal price { get; set; }
public bool isPublished { get; set; }
public bool isActive { get; set; }
public virtual CompanyInformation Company { get; set; }
public UserProfile defaultStaff { get; set; }
public virtual ICollection<Appointment> Appointments { get; set; }
}
我试图创建一个多TO-这两者之间有很多关系:
modelBuilder.Entity<Service>().HasMany(e => e.Appointments).WithMany(e => e.Services);
在OnModelCreating的DbContext中。当我尝试更新数据库时,出现以下错误。
Introducing FOREIGN KEY constraint 'FK_dbo.ServiceAppointments_dbo.Appointments_Appointment_appointmentId' on table 'ServiceAppointments' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
无法创建约束。查看以前的错误。
我已经研究了一下,发现问题是与级联删除,我应该禁用它。问题是我不知道如何和我发现的选项似乎不适合我(他们显然是一对多的关系)。任何帮助解决这个问题将不胜感激。在此先感谢....
拉霍斯,另一部分没有工作的方式 - 关于公约的好处。 – NSGaga