我正在构建患者预约系统并使用实体框架的代码优先方法。我设计了模型及其关系。如果有什么不正确的话,有人可以告诉我吗?
我假设以下是关系。如果我错了,请纠正我
一名患者可以有多次预约,一次预约只能属于一名患者。因此,患者与约会有一对多的关系。
一个Practioner可以有多个约会,一个约会只能属于一个Priper。因此,Practioner与约会有一对多的关系。
一个Practioner可以有很多PractionerTypes(例如医生,护士),一个PractionerType只能属于一个Practioner。因此Practioner与PractionerTypes有一对多的关系。
一个约会可以有许多约会类型(例如标准,特殊),一个约会类型只能属于一个约会。因此,约会与AppointmentTypes有一对多的关系。
一个Practioner可以有许多PractitionerAvailableHours,一个PractitionerAvailableHours只能属于一个Practioner
根据本文,当您执行一对多关系时,您需要在一个类中定义多个类的属性,并在多个类中具有一个类的集合属性。在他们的例子中。学生是一个班级,标准是众多班级。学生具有标准类的虚拟属性方法,标准类具有学生类的虚拟集合属性 在我的设计中,它恰好相反。假设患者和约会有一对多的关系
考虑到上述情况,enity设计如下所示
预约
public class Appointment
{
public int Id { get; set; }
public DateTime Date { get; set; }
public DateTime Time { get; set; }
public string Note { get; set; }
public virtual Patient Patient { get; set; }
public virtual Practioner Practioner { get; set; }
public int PatientId { get; set; }
public int PractionerId { get; set; }
public virtual ICollection<AppointmentType> AppointmentType { get; set; }
}
AppointmentType
public class AppointmentType
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Appointment Appointment { get; set; }
public int AppointmentId { get; set; }
}
病人
public class Patient
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public char Gender { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Postcode { get; set; }
public virtual ICollection<Appointment> Appointments { get; set; }
}
实践者
public class Practioner
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Appointment> Appointments { get; set; }
public virtual ICollection<PractitionerAvailableHours> PractionerAvailableHours { get; set; }
}
PractionerType
public class PractionerType
{
public int Id { get; set; }
public string Name { get; set; }
public int PractionerId { get; set; }
public virtual Practioner Practioner { get; set; }
}
PractitionerAvailableHours
public class PractitionerAvailableHours
{
public int Id { get; set; }
public virtual Practioner Practioner { get; set; }
public int PractionerId { get; set; }
public DateTime AvailableDate { get; set; }
public int AvailableHours { get; set; }
}