簡體   English   中英

如何使用MVC3多對多關系和EF4.1模型優先來檢索數據?

[英]How to retrieve data with MVC3 Many to Many relationship and EF4.1 Model First?

我是一個初學者,我想做一些非常簡單的事情,我想我錯過了一些事情,但找不到答案。

我有兩個表與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等中創建第三個表來做到這一點,但是有可能建立本機的多對多關系又有什么意義呢?

抱歉,如果您覺得很明顯,對我來說不是,我只是一個初學者。

這是在“代碼優先”中的操作方法:

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

您需要在數據庫中擁有第三個表,否則該關系將存儲在哪里?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM