2013-06-17 2 views
0

을 사용하여 관찰 가능한 컬렉션 만들기 linq을 사용하여 XML 문서에서 관찰 가능한 컬렉션을 만들 때 걱정할 필요가있는 함정이 있습니까? 나는이 일을하는 데 어려움을 겪고있는 것 같고 그것이 왜 그런지 확신 할 수 없다. 다음 코드는 PatientModel과 Observable Patient 모델 모음이 일치하지 않는다고 알려줍니다. 그러나 반드시 필자는 그러한 사실을 알지 못합니다. 내가 여기서 뭔가를 놓치고 있니? 나는 올바른 층으로 뚫어야한다고 생각했다. 틀림없이, 나의 linq 기술은 muc.h를 원하는 상태로 남겨 둡니다. 나는 나는 다음과 같은 예외가 ... 내가 마지막 줄에 두 번째로 .ToList()linq to XML

를 추가 할 때 너무

 patsModel = (ObservableCollection<PatientModel>) 
      from templatesList in xDocument.Descendants("TemplateData") 
       select new ObservableCollection<PatientModel> {(
        from template in templatesList.Elements("ACOData")       
        select new PatientModel { 
         EncounterId = ValueOrMin(Convert.ToInt32(template.Element("FOCUSED_READMISSIONS_ID").Value)), 
         PatientId = ValueOrMin(Convert.ToInt32(template.Element("PATIENT_ID").Value)), 
         EMPIID = template.Element("EMPI").Value, 
         PopulationPatientID = ValueOrMin(Convert.ToInt32(template.Element("POPULATION_PATIENT_ID").Value)), 
         FirstName = template.Element("FIRST_NAME").Value, 
         LastName = template.Element("LAST_NAME").Value,        
         Active = template.Element("ACTIVE").Value, 
        }) 
       }; 

을 말할 골 라인을 통해이 걸릴 수 있습니다 당신의 도움과 확신 ...

Error 19 Argument 1: cannot convert from 'System.Collections.Generic.List<FRACOApplication.Models.PatientModel>' to 'FRACOApplication.Models.PatientModel' 

나는 어딘가에서 뭔가 일치하지 않는다고 알려줍니다. 그것은 PatientModel의 List를 기대하고 있으며 단지 PatientModel을 얻고 있습니다. 내가 뭘 잘못하고 있는지 잘 모르겠다. XML에서 무언가의 목록을 어떻게 선택하나요?

답변

0

여기 몇 가지 문제가있었습니다.
우선 첫째 나는 내가 결국 내 문제를 해결하기 위해 내 열정에, 나는 그 일을하지 않은 위의 예에 있지만 쿼리 구문과 확장 메서드 구문 enter link description here

을 혼합하지 않은 있는지 확인 필요 그렇게 해. 또한 필자는 select 문이 끝날 때마다 쉼표를 사용했습니다.
어쨌든, 나는 이것을했다 ...

 patsModel = (ObservableCollection<PatientModel>) 
      //from templateData in 
       xDocument.Element("TemplateData").Elements("ACOData") 
      .Select(template => new PatientModel { 
         EncounterId = ValueOrMin(Convert.ToInt32(template.Element("FOCUSED_READMISSIONS_ID").Value)), 
         PatientId = ValueOrMin(Convert.ToInt32(template.Element("PATIENT_ID").Value)), 
         EMPIID = template.Element("EMPI").Value, 
         PopulationPatientID = ValueOrMin(Convert.ToInt32(template.Element("POPULATION_PATIENT_ID").Value)), 
         FirstName = template.Element("FIRST_NAME").Value, 
         LastName = template.Element("LAST_NAME").Value,        
         Active = template.Element("ACTIVE").Value 
      });