2013-01-12 39 views
-1

我有两个实体之间的一对多关系,扑灭和战斗卡(战斗属于战斗卡,战斗卡可以有许多战斗)。战斗实体与一个名为Fighters的实体有多对多的关系。我想要做的是在FightCard视图中显示Fight实体的细节(这很简单,我可以做到这一点),但是我也显示了与Fight实体具有一对多关系的Fighters的细节。处理关系中的数据

这怎么办?我希望这是有道理的。

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+2

你到目前为止尝试过什么?请发布代码示例,以便我们可以看到您的位置并指出您的方向正确。 –

回答

3

你没有在代码中包含太多内容,所以这里有一个基本的例子来概述你想要做的事情。

所以,让我们说你有一些实体类是这样的:

public class FightCard 
{ 
    [Key] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Fight> Fights { get; set; } 
} 

public class Fight 
{ 
    [Key] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public FightCard FightCard { get; set; } 
    public virtual ICollection<Fighter> Fighters { get; set; } 
} 

public class Fighter 
{ 
    [Key] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Fight> Fights { get; set; } 
} 

有这样的控制器与Details动作:

public class FightCardsController : Controller 
{ 
    private MyContext context = new MyContext(); 

    public ActionResult Details(int id) 
    { 
     FightCard fightCard = context.FightCards.Find(id); 
     if (fightCard == null) 
     { 
      return this.HttpNotFound(); 
     } 

     return this.View(fightCard); 
    } 
} 

然后,你可以做一个FightCards\Details.cshtml视图像以下:

@model MyProject.Models.FightCard 

<h1>Fight Card: @Model.Name</h1> 

<ul> 
@foreach (var fight in Model.Fights) 
{ 
    <li> 
     Fight: @fight.Name 

     <ul> 
     @foreach (var fighter in fight.Fighters) 
     { 
      <li>Fighter: @fighter.Name</li> 
     } 
     </ul> 
    </li> 
} 
</ul> 
+0

非常感谢你,我删除了我有过的代码,但代码非常相似,但语法错误。非常感谢。 –