2

我在我的 MVC 项目中使用 Code First 方法。为简单起见,我有两个实体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). 但问题是该表没有填充各个表中的键。它是空白的。任何人都可以帮我解决这个问题吗?

谢谢。

4

1 回答 1

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");
                });
}

另外,我们可以在您尝试保存课程/模块的位置查看您的代码吗?

于 2013-03-21T15:18:26.667 回答