2011-11-23 64 views
2

我对MVC方法有点新鲜。我已经开始使用数据库模型。我目前有两个表:外键不能在视图中显示

  • 灯具

配件(除其他领域)具有FK链接到团队表为家庭和客队。

public class Team 
{   
    public virtual int TeamId { get; set; } 
    public virtual string Name { get; set; } 
    public virtual int DivisionId { get; set; } 
} 

public class Fixture 
{ 
    public int FixtureId { get; set; } 
    public DateTime Date { get; set; } 
    public Team HomeTeam { get; set; } 
    public Team AwayTeam { get; set; } 
} 

我注意到,当这通过FixtureController HomeTeam和AwayTeam对象都为null。我必须以某种方式将它连接到控制器内部,还是应该自动进行连接?

所以最好再在视图中,我可以有:

<td> 
     @Html.DisplayFor(modelItem => item.HomeTeam.Name) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.AwayTeam.Name) 
    </td> 

,所以我想我的问题是如何得到我的控制器,使从Fixtures->团队的联系?

感谢

回答

2

在你的控制器,使用.Include来获取数据。另请参见:Loading Related Objects

var fixtures = db.Fixtures // The fixture data 
    .Include(fixture => fixture.HomeTeam) // Bring in the HomeTeam 
    .Include(fixture => fixture.AwayTeam); // Bring in the AwayTeam 
+0

注意上面的使用在'System.Data.Entity'命名空间的扩展,所以你会希望有一个'使用System.Data.Entity的;'。或者,您可以使用标准的'Include',它包含要加载的内容的字符串路径,请参阅http://msdn.microsoft.com/en-us/library/bb738708.aspx –

+0

完美!感谢您的快速回复,更重要的是链接。 – nik0lias