1

私は非常に初心者で、本当に簡単なことをしたいと思っています。何かを見逃していたと思いますが、答えが見つかりませんでした。

EF4.1でマッピングされた多対多の関係を持つ2つのテーブルがあります

public partial class Activity
{
    public Activity()
    {
        this.Pack = new HashSet<Pack>();
    }

    public int ActivityId { get; set; }
    public string Type { get; set; }
    public string Title { get; set; }
    public string Price { get; set; }    
    public virtual ICollection<Pack> Pack { get; set; }
}

public partial class Pack
{
    public Pack()
    {
        this.Activity = new HashSet<Activity>();
    }

    public int PackId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Price { get; set; }

    public virtual ICollection<Activity> Activity { get; set; }
}

そして生成されたコンテキストクラス:

public partial class EvgDatabaseEntities : DbContext
{
    public EvgDatabaseEntities()
        : base("name=EvgDatabaseEntities")
    {
    }
    public DbSet<Pack> PackSet { get; set; }
    public DbSet<Activity> ActivitySet { get; set; }
}

インデックス ビューでは、パックからのデータと、このパックに関連するアクティビティを表示するだけです。

コントローラーは次のとおりです。

public ActionResult Index()
{
    var packs = evgDB.PackSet.Include("Activity").ToList();
    return View(packs);
}

これが私の見解でやりたいことです:

@model IEnumerable<myEvg.Models.EvgDatabaseEntities>
@{
    ViewBag.Title = "Index";
}
@foreach (var pack in Model)
{
    //SHOW PACK.ID PACK.DESCRIPTION
    //SHOW THE ACTIVITIES RELATED TO THIS PACK 
}

これを行うための最良の方法/プラクティスは何ですか? EDMなどで3番目のテーブルを作成することでそれを行うことができますが、ネイティブの多対多の関係を作成する可能性があるという点は何ですか?

当たり前のように思えたら申し訳ありませんが、私にはそうではありません。私はただの初心者です。

4

1 に答える 1

-1

コードファーストでそれを行う方法は次のとおりです。

http://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many-to-many-relationship.aspx

データベースに 3 番目のテーブルが必要です。それ以外の場合、この関係はどこに保存されますか?

于 2012-02-11T18:53:07.343 に答える