2017-05-14 61 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)。然後我創建一個新的listePrestationtmp,它將發送到我的視圖。在那之後,我需要補listePrestationtmp的結果由我的分貝取決於型動物給予tuteurs_id

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與我需要因爲我不能用添加填充數據項目包含在模型中。

我也許錯過了愚蠢,但我從2小時卡住,我認爲我的嘗試變得越來越差> <。

感謝您的幫助

+0

您是否收到錯誤消息。說你不能填補,並不真正表明你遇到的問題?澄清問題。 – Nkosi

+0

嚴重\t代碼\t說明\t項目\t文件\t線\t抑制狀態 無法從 'System.Collections.Generic.List ' 轉換爲 'Tutorat.Models.prestationtmp' \t Tutorat \t 在listPrest.Items.Add(TMP); – bap

+0

這是一個編譯時錯誤,因爲您正嘗試將列表添加到需要單個對象的方法中。檢查提供的答案。 – Nkosi

回答

0

無論身在何處的OP是Items屬性初始化,所以有可能是當在listPrest.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);