2017-05-14 8 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を作成します。その後、私はちょうど私が追加でいっぱいに傾けるcuzの私に必要なデータと私のlistPrestationtmpを記入することはできませんよ

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); 
     }*/ 
} 

をtuteurs_id貴様に応じて、私のデシベルで与えられた結果とlistePrestationtmpを入力する必要がありますアイテムはモデルに含まれています。

私はおそらく愚かなことをしたことがありますが、私は2時間以来立ち往生しており、私の試行は最悪になっていると思います> <。あなたの助けのための

おかげ

+0

エラーが発生していますか。あなたが満たすことができないと言って、実際にあなたが遭遇している問題を示していない?質問を明確にする。 – Nkosi

+0

重大\tコード\t説明\tプロジェクト\tファイル\tライン\t抑制状態 は 'Tutorat.Models.prestationtmp' \t Tutoratで\t に 'System.Collections.Generic.List ' から変換することはできませんlistPrest.Items.Add(tmp); – bap

+0

これは、単一のオブジェクトが必要なメソッドにリストを追加しようとしているため、コンパイル時エラーです。提供された回答を確認してください。 – Nkosi

答えて

0

ありません

このプロパティの母集団は、以下に簡略化することができます。

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

はこれを試してみてください:それはlistPrest.Items.*でアクセスされたときにnull参照の例外がスローされる可能性がありますので、OPにItemsプロパティが初期化され

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