在EF 4.5中将实体映射到多对多联结表

时间:2012-10-22 11:15:03

标签: c# database entity-framework fluent-interface

目前我正在通过Fluent Api将现有的数据库表映射到新的EF 4.5模型。我有一个关于如何将以下db结构映射到类的任务。

Students(pk Id...)
Courses (pk Id...)
Students_Courses (pk Id, fk StudentId, fk CourseId)
Comments (pk Id, fk Students_Courses Id, comment, dateposted...)

我的想法是每个student_course对可能有很多评论。在这种情况下表示我的课程的最佳方式是什么? 这里的问题是我可能需要将Comment实体映射到Students_Courses表,并以某种方式确定此评论所属的学生和课程(就课程而言)。 有关设计的任何建议吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

也许您希望使用Entity Framework Power Tools将数据模型反向工程为具有DbContext API的“代码优先”模型。

您将看到类似StudentCourse类的内容将如下所示:

public class StudentCourse
{
    public StudentCourse()
    {
        this.Comments = new List<Comment>();
    }

    public int StudentCourseId { get; set; }
    public int StudentId { get; set; }
    public int CourseId { get; set; }
    public virtual ICollection<Comment> Comments { get; set; }
    public virtual Course Course { get; set; }
    public virtual Student Student { get; set; }
}

Comment看起来像这样:

public class Comment
{
    public int CommentId { get; set; }
    public int StudentCourseId { get; set; }
    public virtual StudentCourse StudentCourse { get; set; }
    ...
}

所以评论通过StudentCourse

与学生和课程相关