根据传递的对象将数据传输对象加载到DataGridView

时间:2018-10-17 14:14:26

标签: c# winforms entity-framework

我知道有人问过有关返回匿名对象类型的类似问题。但是我的看上去有些不同,因为我只想基于传递的患者对象将数据加载到datagridview中。但是到目前为止,我所进行的查询返回的数据不会基于所传递的患者而加载。但是所有其他数据都运行良好。 我创建了一个数据传输对象(DTo),该对象根据我编写的查询携带一些数据。因为我只需要返回一些选定的列。下面是我的DTo类

 public class CaseNoteDto
 {
        //public patient Id { get; set; }
        public string CategoryName { get; set; }
        public string CreatedBy { get; set; }
        public DateTime CreatedAt { get; set; }
 }

这是我在查询中使用DTo加载要返回的一些数据的地方。

 private IQueryable<CaseNoteDto> LoadCaseNoteBaseOnPatientId(patient patient)
 {
    var patientCaseNote =
        from c in dbHelper.casenotes
        join u in dbHelper.users on c.creator_id equals u.user_id
        join cat in dbHelper.categories on c.category_id equals cat.category_id
        where patient.patient_id == _currentPatient.patient_id
        //where _currentPatient.patient_id == patient.patient_id
        select new CaseNoteDto
        { 
            //Id = patient,
            CreatedBy = u.firstname,
            CategoryName = cat.name,
           // CreatedAt = Convert.ToDateTime(c.created_at)
        };
    return patientCaseNote;
 }

在这里,我将其加载到datagridview对象并传递currentPatient obj。

 private void PatientMasterData_Load(object sender, EventArgs e)
 {
      var data = LoadCaseNoteBaseOnPatientId(_currentPatient);
      dataGridView1.DataSource = data.ToList();
 }

任何帮助都会告诉我我哪里做错了。因为我只希望基于传递的患者obj加载返回的数据。

0 个答案:

没有答案