我正在建模一个电子学习系统,用户可以通过该系统注册课程。一门课程可以由一系列内容或一系列课程部分组成,这些部分又包含内容。
我的模型定义如下:
public class Course
{
[Key]
public int CourseID { get; set; }
//1 to many relationship
public virtual ICollection<Content> Contents { get; set; }
public virtual ICollection<CourseSection> CourseSections { get; set; }
//many to many relationship
public virtual ICollection<User> Users { get; set; }
}
public class CourseSection
{
[Key]
public int CourseSectionID { get; set; }
public int CourseID { get; set; }
public virtual ICollection<Content> Contents { get; set; }
}
public class Content
{
[Key]
public int ContentID { get; set; }
//many-to-many mappings
public virtual ICollection<Course> Courses { get; set; }
public virtual ICollection<CourseSection> CourseSections { get; set; }
}
初始化上下文后,我可以看到在数据库中创建了两个与我创建的模型无关的表。以下两个表是意外创建的,我想了解原因:
内容课程: Content_ContentID、Course_CourseID
课程部分内容: CourseSection_CourseSectionID、Content_ContentID
一旦我注意到正在创建这两个表,我决定通过添加以下两个模型来为CourseContent和SectionContent创建映射表:
public class CourseContent
{
[Key, Column(Order = 0)]
public int CourseID { get; set; }
[Key, Column(Order = 1)]
public int ContentID { get; set; }
}
public class SectionContent
{
[Key, Column(Order = 0)]
public int CourseSectionID { get; set; }
[Key, Column(Order = 1)]
public int ContentID { get; set; }
}
不幸的是,这些表仍在创建中。谁能从我的代码中看出我哪里出错了?任何帮助将不胜感激。