我正在尝试访问由创建的关系表中的数据 实体框架:我有两个表(在这里发布相应的模型)
我有Event
和Child
的模型,但没有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; }
答案 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");
});
}
}