2017-07-18 4 views
-1

Material Group、Material Class、Material Typeという3つのテーブルがあります。 グループとクラス、クラスとタイプの間に親子関係がありますが、グループとタイプテーブルの間には直接の関係はありません。asp.netのビューで複数のテーブルのデータを表示する方法MVC

以下

コントローラの現在のコードである:

VAR ctbl_MaterialType = db.ctbl_MaterialType.Include(C => c.ctbl_MaterialClass).INCLUDE(C => c.stbl_Supplier).ToList();

リターンビュー(ctbl_MaterialType);

直接の関係がないため、グループテーブルを含めることができません。でも私はコードの下で試してみましたが、エラーが出ました:

var ctbl_MaterialType = (from mt in db.ctbl_MaterialType join mc in db.ctbl_MaterialClass on mt.ID_ctbl_MaterialClass equals mc.ID_ctbl_MaterialClass 
where mt.ID_ctbl_MaterialClass == mc.ID_ctbl_MaterialClass 
join mg in db.ctbl_MaterialGroup on mc.ID_ctbl_MaterialGroup equals mg.ID_ctbl_MaterialGroup 
where mc.ID_ctbl_MaterialGroup == mg.ID_ctbl_MaterialGroup 
join ms in db.stbl_Supplier on mt.ID_stbl_Supplier equals ms.ID_stbl_Supplier 
where mt.ID_stbl_Supplier == ms.ID_stbl_Supplier select new { 
              MaterialGroup = mg.MaterialGroup, 
              MaterialClass = mc.MaterialClass, 
              MaterialType = mt.MaterialType, 
              MaterialTypeAlias= mt.MaterialTypeAlias, 
              Supplier = ms.Supplier 
             }); 
return View(ctbl_MaterialType); 

私は表示用にビューで使用できるようにグループテーブルを含めるにはどうすればいいですか?

+0

おそらく、最高の賭けです。 を参照してください:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/join-clause – DaniDev

+0

私の結合は正しいが、ビューモデルが重要だった。私はそれを実装し、それは適切に動作します。 –

答えて

1

ViewModelを作成します。 ViewModelは、ビューに送信する必要がある他のすべてのモデルをラップするクラスです。

例:生徒のリストと都市のリストを保持するビューモデルを作成します。

ビューモデルクラス:あなたのアクションで

public class HomeIndexVM //(controllerName + actionName + VM) 
{ 
    public List<Student> Students { get; set; } 
    public List<City> Cities { get; set; } 
} 

:あなたのビューで

HomeIndexVM viewModel = new HomeIndexVM { 
    Students = context.Students.ToList(); 
    Cities = context.Cities.ToList(); 
}; 

return View(viewModel); 

@model HomeIndexVM 

foreach(Student student in Model.Students) { 
    //... 
} 

私はあなたがポイントを得るいただければ幸いです。ハッピーコーディング。

+0

このようにして、2つの独立したリストを表示することができますが、それらの間の関係はどうですか?特定のタイプとクラスのそれぞれのグループ値を表示する必要があるためです。現在、外部キーとしてクラスを持つTYPEモデルを渡しています。しかし、グループはTYPEに関連していません。 –

+0

試してみると正しく動作します。ご協力ありがとうございました。ハッピーコーディング。 –

関連する問題