我在我的MVC项目中使用Code First appraoch。为简单起见,我有两个classes Course
和Modules
,其中实体之间存在多对多的关系。这是我的课程结构
public class Course
{
public int CourseId { get; set; }
public string Title { get; set; }
public virtual ICollection<Module> Modules { get; set;
}
public class Module
{
public int ModuleId { get; set; }
public string Title { get; set; }
public int Credits { get; set; }
public virtual ICollection<Course> Courses {get;set;
}
我使用EntityFramework为每个控制器创建了两个控制器,其中每个控制器为每个类创建表。现在拥有多对多关系,EF足够聪明,可以为我创建第三个联结表。 CourseModule(FK_Course_ID, FK_ModuleID)
。但问题是这个表没有填充相应表中的键。这是空白的。任何人都可以帮助我,我怎么能搞清楚?
感谢。
答案 0 :(得分:1)
我在这里出去了,但是你有以下内容吗? 上下文类:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Course>()
.HasMany(s => s.Modules)
.WithMany(a => a.Courses)
.Map(m =>
{
m.MapLeftKey("CourseID");
m.MapRightKey("ModuleID");
m.ToTable("CourseModules");
});
}
另外,我们可以在您尝试保存课程/模块的地方看到您的代码吗?