2017-05-14 1 views
-1

모델 내에서 목록을 채우기 위해 2 시간 이후로 검색하고 있습니다.동적 목록으로 모델 채우기 <Object>

그래서 내 모델은 다음과 같은 : 내 컨트롤러에서

public class listePrestationtmp 
    { 
     public List<prestationtmp> Items { get; set; } 

     [DisplayName("Sélection")] 
     public List<Boolean> select { get; set; } 

    } 

을, 내가보기에하지만 내 데이터베이스에 여러 테이블에서 오는 여러 항목과 함께 보낼 수있는 "listePrestationtmp"을 기입했습니다.

그래서 먼저 필요한 ID (tuteurs_id)를 검색합니다. 그런 다음 내 List로 전송할 새 ListePrestationtmp를 만듭니다. 그 후, 나는 결과가 differents의에 따라 내 DB에 의해 주어진으로 listePrestationtmp를 작성해야

int[] tuteurs_id = bdd.tuteur.Where(t => t.matricule == matricule).Select(t => t.tuteur_id).ToArray(); 
listePrestationtmp listPrest = new listePrestationtmp(); 

foreach (int i in tuteurs_id) 
{ 
    listPrest.Items.Add(new prestationtmp()); 
    List<prestationtmp> tmp = bddtemp.prestationtmp.Where(p => p.tuteur_id == i).ToList(); 
    listPrest.Items.Add(tmp); 

    /*for(int h =0; h < tmp.Items.Count(); h++)*/ 
    /*foreach (prestationtmp t in tmp) { 
      listPrest.Items.Add(tmp); 
     }*/ 
} 

나는 내가이 추가로 기입하지 못할 사촌 필요한 데이터 내 listPrestationtmp을 채울 단지 수 아니에요 tuteurs_id 항목은 모델에 포함됩니다.

나는 어리 석었지만 2 시간이 지나서 붙어서 내 시도가 최악이라고 생각합니다> <. 당신의 도움에 대한

감사

+0

오류가 발생합니다. 당신이 채우지 못한다고 말하면, 당신이 마주 치고있는 문제를 실제로 나타내지는 않습니까? 질문을 명확히하십시오. – Nkosi

+0

심각도 \t 코드 \t 설명 \t 프로젝트 \t 파일 \t 회선 상태 가에 ' System.Collections.Generic.List' 'Tutorat.Models.prestationtmp'\t Tutorat \t 로 변환 할 수 \t 억제 listPrest.Items.Add (tmp); – bap

+0

단일 개체를 필요로하는 메서드에 목록을 추가하려고하기 때문에 컴파일 타임 오류입니다. 제공된 답변을 확인하십시오. – Nkosi

답변

0

없음이 영업 이익에 그것이 listPrest.Items.*에 액세스 할 때 null 참조 예외가 발생 될 가능성이 있으므로 초기화 Items 재산이다

해당 속성의 수는 다음과 같이 단순화 할 수 있습니다.

var tuteurs_ids = bdd.tuteur 
    .Where(t => t.matricule == matricule) 
    .Select(t => t.tuteur_id) 
    .ToList(); 

var items = bddtemp.prestationtmp 
    .Where(p => tuteurs_ids.Contains(p.tuteur_id)) 
    .ToList(); 

var listPrest = new listePrestationtmp() { 
        Items = items 
       }; 
0

이 시도 :

List<prestationtmp> tmp = bddtemp.prestationtmp.Where(p => p.tuteur_id == i).ToList(); 
listPrest.Items.AddRange(tmp);