Как получить данные с помощью отношения MVC3 «многие ко многим» и модели EF4.1 «Сначала»? - PullRequest
1 голос
/ 11 февраля 2012

Я очень новичок, и я хочу сделать что-то действительно простое, я думаю, что что-то упустил, но не смог найти ответ.

У меня есть две таблицы с отношением "многие ко многим", сопоставленнымиEF4.1

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 и т. Д., Но какой смысл иметь возможность сделать так, чтобы родные отношения «многие ко многим» были такими?

Извините, если вам это кажется очевидным, это не для меня, я просто новичок.

1 Ответ

0 голосов
/ 11 февраля 2012

Вот как это сделать в Code First:

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

Вам нужна третья таблица в базе данных, иначе где будет храниться эта связь?

...