访问实体框架关系表中的数据

时间:2015-08-19 19:42:05

标签: entity-framework many-to-many

我正在尝试访问由创建的关系表中的数据 实体框架:我有两个表(在这里发布相应的模型)

我有EventChild的模型,但没有ChildEvent的模型。

每个Event都有多个子节点,每个Child都有多个事件,因为它是多对多关系。现在我可以在表格中添加和删除条目。但是当我试图访问与每个事件相关的子节点时,我得到一个空值。

我试过谷歌搜索,我发现一些容易加载的帖子。我试过把它关掉,但问题仍然存在。有什么方法可以让孩子们与每个事件相关联。我没有ChildEvent的模型?我无法直接查询ChildEvent表。

Public Class Event {       // This is the event model
   public int EventId      // This is the primary key
   public int EventName

   public virtual ICollection<Child> Children // used to reference Child table
}

Public Class Child {       // This is the Child Model
   public int ChildId      // primary key
   public string FirstName 
   public virtual ICollection<Event> Events // used to refer to Event table
}

我有通过实体框架

创建的关系表

ChildEvent

    public int ChildId { get; set; }
    public int EventId { get; set; }

1 个答案:

答案 0 :(得分:0)

这将确保Entity Frameowrk知道您希望如何设置多对多关系。这样,Lazy Loading将起作用,EF将把事件映射到子项和子项到事件。

 public class EventMap: EntityTypeConfiguration<Event>
        {
             public EventMap()
             {
                 HasMany(e => e.Children)
                  .WithMany(c => c.Events)
                  .Map(m =>
                     {
                      m.MapLeftKey("EventId");  
                      m.MapRightKey("ChildId"); 
                      m.ToTable("Event_Children");
                  });
             }
        }