【问题标题】:Relating table data using code first approach使用代码优先方法关联表数据
【发布时间】:2018-01-24 10:15:32
【问题描述】:

如何在以下场景中关联数据: Ninja -> NinjaItem -> ItemList 这样 NinjaItem-table 将包含属于 Ninja 的项目的数据? ItemList-table 应该只包含 item-name 和 id。

我有以下内容将 Ninja 与 NinjaItem 相关联,但我无法弄清楚如何将 NinjaItem 也与 ItemList 相关联。

public class Ninja
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual List<NinjaItem> NinjaItem { get; set; }
}
public class NinjaItem
{
    public int ID { get; set; }
    public int NinjaID { get; set; }
    public int ItemListID { get; set; }
    public virtual List<ItemList> ItemList{ get; set; }
}
public class ItemList
{
    public int Id { get; set; }
    public string Name { get; set; }      
}

【问题讨论】:

  • 考虑搜索实体框架多对多关系。
  • 谢谢。没有先了解我的问题。

标签: asp.net-mvc-5 ef-code-first entity-framework-6


【解决方案1】:

从问题到答案的移动解决方案:

解决方案: 我只需要 Ninja 和 ItemList 两个类,Entity Framework 创建第三个表,将项目链接到 ninjas。

public class Ninja
{
    public Ninja ()
    {
        this.ItemLists = new HashSet<ItemList>();
    }
    public int NinjaId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ItemList> ItemLists { get; set; }
}

public class ItemList
{
    public ItemList ()
    {
        this.Ninjas = new HashSet<Ninja>();
    }
    public int ItemListId { get; set; }
    public string ItemName { get; set; }
    public virtual ICollection<Ninja> Ninjas { get; set; }

}

【讨论】:

    猜你喜欢
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多