掌握EF的细节结构



我有以下类在我的mvc模型,我使用EF

 public class Patient
    {
        [Key()]
        public int PatientId { get; set; }
        public string Name { get; set; }
     }
public class Treatment
    {
        [Key()]
        public int Id { get; set; }
        [ForeignKey("Patient")]
        public int PatientId { get; set; }
        public Patient Patient { get; set; }
        [DataType(DataType.DateTime)]
        public DateTime TreatmentDate { get; set; }
}

我想显示患者的姓名,并在同一行显示他们接受的治疗次数。

我能想到的两个解决方案,但寻找更优雅的:

  1. 迭代我的病人和每个计数的治疗
  2. 组治疗及计数。然后在结果和患者之间进行连接。

谢谢!

public class Patient
{
    [Key()]
    public int PatientId { get; set; }
    public string Name { get; set; }
    public ICollection<Treatment> Treatments
 }

In your view;

@foreach(var item in Model)
{
    <h1>@item.Name</h1>
    <h2>@item.Treatment.TreatmentDate
}
db.EntityName.Select(p=> new Treatment()
{
    PatientId = p.PatientId,
    .....
...
    Treatments = p.Treatments
});

我终于找到了答案-它是如此简单!!

db.Patients.Include("Treatments").ToList()

然后在我看来,我只需要执行

@Html.DisplayFor(modelItem => item.Treatments.Count)

您应该使用ViewModel的视图。我认为这是更好的练习。在这里你可以阅读它:什么是MVC中的ViewModel ?. 基本上它是一个简单的类,只有你的视图需要的这些属性。我不是很了解你的模型,但我会这样做

    public class Patient
    {
        public int Id { get; set; }// if it's Id it's default Primery Key
        public string FirstName { get; set; }
 public string LastName { get; set; }
     }
public class Treatment
    {
        public int Id { get; set; }// if it's Id it's default Primery Key

        public Patient IdPatient { get; set; } // Your Foreign key
        [DataType(DataType.DateTime)]
        public DateTime TreatmentDate { get; set; }
}

有了这个,一个病人可能有多个治疗日期。我不是专业人士,只是爱好者。好运。

最新更新