-1

Fight と FightCard という 2 つのエンティティ間に 1 対多の関係があります (1 つのファイトは 1 つのファイト カードに属し、1 つのファイト カードには複数のファイトを含めることができます)。ファイト エンティティは、Fighters と呼ばれるエンティティと多対多の関係にあります。私がやりたいことは、FightCard ビューに Fight エンティティの詳細を表示することです (これは簡単です。これを行うことができます) が、Fight エンティティと 1 対多の関係を持つファイターの詳細も表示します。

これはどのように行うことができますか?それが理にかなっていることを願っています。

4

1 に答える 1

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>
于 2013-01-12T23:10:26.373 に答える