ASP.NET MVC 4 Model – Table Relation ( Joining )

ASP.NET MVC 4 Model – Table Relation ( Joining )

   \Models\League.cs
 
   using System;
   using System.Collections.Generic;
   using System.ComponentModel.DataAnnotations;
   using System.ComponentModel.DataAnnotations.Schema;
 
   namespace CRMPortal.Models
   {
      public class League
      {
         [Key]
         public int League_ID { get; set; }
         public String League_Name { get; set; }
         public int League_Nation { get; set; }
         public virtual ICollection<Team> League_Team { get; set; }
      }
   }
 
   \Models\Team.cs
 
   using System;
   using System.ComponentModel.DataAnnotations;
   using System.ComponentModel.DataAnnotations.Schema;
 
   namespace CRMPortal.Models
   {
      public class Team
      {
         [Key]
         public int Team_ID { get; set; }
         public String Team_Name { get; set; }
         public int Team_League { get; set; }
         [ForeignKey("Team_League")]
         public League League { get; set; }
      }
   }
 
   \Models\SoccerContext.cs
 
   using System;
   using System.Data.Entity;
 
   namespace CRMPortal.Models
   {
      public class SoccerContext : DbContext
      {
         public DbSet<League> League { get; set; }
         public DbSet<Team> Team { get; set; }
 
         public SoccerContext() : base("DefaultConnection")
         {
         }
      }
   }
 
   \Controllers\HomeController.cs
 
   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Web;
   using System.Web.Mvc;
   using CRMPortal.Models;
 
   namespace CRMPortal.Controllers
   {
      public class HomeController : Controller
      {
 
         … …
 
         public ActionResult Team()
         {
            var db = new SoccerContext();
            return View(db.Team.Include("League").ToList());
         }
 
         public ActionResult League()
         {
            var db = new SoccerContext();
            return View(db.League.Include("League_Team").ToList());
         }
 
      }
   }
 
   \Views\Home\Team.cshtml
 
   @model List<CRMPortal.Models.Team>
 
   … …
 
   @foreach (CRMPortal.Models.Team item in Model)
   {
      <div>@(item.Team_Name)</div>
      <div>@(item.League.League_Name)</div>
   }
 
   \Views\Home\League.cshtml
 
   @model List<CRMPortal.Models.League>
 
   … …
 
   @{
 
      foreach (CRMPortal.Models.League LeagueItem in Model)
      {
         <div>@(LeagueItem.League_Name)</div>
 
         foreach (CRMPortal.Models.Team TeamItem in LeagueItem.League_Team)
         {
            <div>@(TeamItem.Team_Name)</div>
         }
      }
 
   }