1

我是一个非常初学者,我想做一些非常简单的事情,我想我错过了一些东西,但我找不到答案。如何使用MVC3多对多关系和EF4.1模型首先检索数据?

我有两个表许多一对多的关系与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等中创建第三个表格来实现这一点,但是有什么可以让本地多对多关系如此的可能?

对不起,如果你看起来很明显,这不是我,我只是一个初学者。

+0

不知何故,你已经拥有了一切,看起来一切正常。问题究竟是什么?特别是我不明白:*“但是有什么可以让本地的多对多关系如此呢?”* – Slauma 2012-02-11 19:39:05

+0

这一切对我来说都很好,你会得到一个错误吗? – Paul 2012-02-11 23:40:21

+0

好了,主要的问题是: 如何实现我想要的代码中的注释做: // SHOW PACK.ID PACK.DESCRIPTION //显示与这个包 的活动开展以来,我可以”做T这样的事(我知道这没有意义): @foreach(VAR包的型号) { pack.activity.activities } 要显示所有相关的包中activites。 我应该在第一个文章中写另一个foreach吗? 非常感谢您的回答。 – user1204137 2012-02-13 16:45:54

回答

相关问题