2016-10-07 10 views
-1
public class PatientViewModel 
    { 
     public int PID { get; set; } 
     public string patientname { get; set; } 
     public virtual ICollection<Patient_VisitHistoryViewModel> Patient_VisitHistoryViewModelList { get; set; } 
     public virtual ICollection<Patient_insurancecompaniesViewModel> Patient_insurancecompaniesViewModelList { get; set; } 
    } 


public class Patient_VisitHistoryViewModel 
{ 
    public int VID { get; set; } 
    public string visitstudylist { get; set; } 
    public string visttype { get; set; } 
} 

public class Patient_insurancecompaniesViewModel 
{ 
    public int PINSID { get; set; } 
    public int PID { get; set; } 
    public int INSID { get; set; } 
    public string insurancecompanyname { get; set; } 
} 





public class Patient 
{ 
     public int PID { get; set; } // PID (Primary key) 
     public string patientname { get; set; } // patientname (length: 100) 

    // Reverse navigation 
     public virtual ICollection<Patient_insurancecompanies> Patient_insurancecompanies { get; set; } // Patient_insurancecompanies.FK_Patient_insurancecompanies_Patient 
     public virtual ICollection<Visit> Visit { get; set; } // Visit.FK_Visit_Patient 
} 


public class Visit 
{ 
     public int VID { get; set; } // VID (Primary key) 
     public int PID { get; set; } // PID 
     // Reverse navigation 
     public virtual ICollection<Visit_studiesperformed> Visit_studiesperformed { get; set; } // Visit_studiesperformed.FK_visits_studiesperformed_visits 

     // Foreign keys 
     public virtual Branch Branch { get; set; } // FK_visits_branches 
     public virtual Patient Patient { get; set; } // FK_Visit_Patient 
     public virtual Visittype Visittype { get; set; } // FK_Visit_Visittype 
} 



public class Visit_studiesperformed 
{ 
     public int VSPID { get; set; } // VSPID (Primary key) 
     public int VID { get; set; } // VID 
     public int STID { get; set; } // STID 

     // Reverse navigation 
     public virtual ICollection<Visit_studiesperformed_medicalreport> Visit_studiesperformed_medicalreport { get; set; } // Visit_studiesperformed_medicalreport.FK_visits_medicalreport_visits_studiesperformed 

     // Foreign keys 
     public virtual Studies Studies { get; set; } // FK_Visit_studiesperformed_studies 
     public virtual Visit Visit { get; set; } // FK_visits_studiesperformed_visits 
} 


public class Studies 
{ 
     public int STID { get; set; } // STID (Primary key) 
     public string studydescription { get; set; } // studydescription (length: 100) 

     // Reverse navigation 
     public virtual ICollection<Visit_studiesperformed> Visit_studiesperformed { get; set; } // Visit_studiesperformed.FK_Visit_studiesperformed_studies 
} 


public class Insurancecompany 
{ 
     public int INSID { get; set; } // INSID (Primary key) 
     public string insurancecompanyname { get; set; } // insurancecompanyname (length: 100) 

     // Reverse navigation 
     public virtual System.Collections.Generic.ICollection<Patient_insurancecompanies> Patient_insurancecompanies { get; set; } // Patient_insurancecompanies.FK_Patient_insurancecompanies_Insurancecompany 

} 



public ActionResult Edit(int PID) 
{ 

    Patient patient = bLLPatient.GetPatientByPID(PID); 

    List<Insurancecompany> ListOfInsuranceCompany = bLLControltables.GetList_Insurancecompany(); 
    List<Studies> ListofStudies = bLLControltables.GetList_Studies(); 

    PatientViewModel patientViewModel = mapper.Map<PatientViewModel>(patient); 

    patientViewModel.Patient_insurancecompaniesViewModelList.ToList().ForEach(x => x.insurancecompanyname = ListOfInsuranceCompany.Where(b => x.INSID == b.INSID).SingleOrDefault().insurancecompanyname); 

    return View(patientViewModel); 
} 

私はパブリックActionResult Edit(int PID)の下を見てください。私はlinqオブジェクトグラフのナビゲーションカンマ区切り文字列

が、私はこのコードでフィールドpatientViewModel.Patient_insurancecompaniesViewModelListで行わ似た何かを得るために管理している... Studies.studydescriptionのカンマ区切りのリストを作成し、リストpatientViewModel.Patient_VisitHistoryViewModelList.visitstudylist int型で保存しようとしています

patientViewModel.Patient_insurancecompaniesViewModelList.ToList().ForEach(x => x.insurancecompanyname = ListOfInsuranceCompany.Where(b => x.INSID == b.INSID).SingleOrDefault().insurancecompanyname); 

ので、私がしなければならないものです: 列挙Patient_VisitHistoryViewModelListは、各訪問を取得し、各studies.studydescriptionを取得し、それぞれ各Visit_studiesperformedを得る訪問するために、各Vist_studyperformedのために....その後

何とかカンマ区切りの文字列を作成し、各patientViewModel.Patient_insurancecompaniesViewModelList.visitstudylist

私はここにAutoMapper: Collection to Single string Propertyをカンマ区切りのリストを作るための方法に遭遇するために管理したのに保存しますが、私はそれを一緒に入れて問題を抱えています。

答えて

0

単一ではなく結合を使用するには、文字列の配列が必要です。 string results = String.Join( "、"、patientViewModel.Patient_insurancecompaniesViewModelList.ToList()。ForEach(x => x.insurancecompanyname = ListOfInsuranceCompany.Where(b => x.INSID == b.INSID)。 (Y => y.insurancecompanyname).ToArrayを())を選択します。

上記
+0

これは、カンマ区切りの文字列で私の途中で取得しますが、私はまだ、オブジェクトモデルをナビゲート問題を抱えています。あなたの貢献度を下げました.. patientViewModel.Patient_VisitHistoryViewModelList.ToList()。ForEach(x => x.visitstudylist = patient.Visit.ToList()。ForEach(y => y.Visit_studiesperformed.ToList()。ForEach (z => z.Studies.studydescription.ToString()));エラーを取得することは暗黙のうちにできませんitlyはvoidを文字列に変換します.... – rdurant

+0

いくつかのプロパティがnullであるようです。 ToString()を使用すると、項目がnullのときにerorrsが返されます。代わりにこれを試してください:string results = String.Join( "、"、patientViewModel.Patient_insurancecompaniesViewModelList.ToList()。ForEach(x => x.insurancecompanyname = ListOfInsuranceCompany.Where(b =>(x.INSID == b.INSID)&& (x.insurancecompanyname!= null))。(y =>(string)y.insurancecompanyname).ToArray())を選択します。 – jdweng

0
 patientViewModel.Patient_VisitHistoryViewModelList.ToList().ForEach(x => x.visitstudylist = String.Join(", ", patient.Visit.Single(b => b.VID == x.VID).Visit_studiesperformed.Where(m => m.status == "Active").ToList().Select(w => ListofStudies.Where(b => w.STID== b.STID).SingleOrDefault().studydescription ) ) ); 

は溶液で

関連する問題