C# 将实体映射到EF 4.5中的多对多连接表
目前,我正在通过fluentapi将现有的DB表映射到新的ef4.5模型。我有一个关于如何将下面的db结构映射到类的任务C# 将实体映射到EF 4.5中的多对多连接表,c#,database,entity-framework,fluent-interface,C#,Database,Entity Framework,Fluent Interface,目前,我正在通过fluentapi将现有的DB表映射到新的ef4.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...) 我的想法是,我可能会有许多评论每个学生的课程对。在这个场景中,表示
Students(pk Id...)
Courses (pk Id...)
Students_Courses (pk Id, fk StudentId, fk CourseId)
Comments (pk Id, fk Students_Courses Id, comment, dateposted...)
我的想法是,我可能会有许多评论每个学生的课程对。在这个场景中,表示类的最佳方式是什么?
这里的问题是,我可能需要将注释实体映射到Students_Courses表,并以某种方式确定该注释属于哪个学生和课程(就类而言)。
对设计有什么建议吗?
谢谢 也许您希望使用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; }
}
public class Comment
{
public int CommentId { get; set; }
public int StudentCourseId { get; set; }
public virtual StudentCourse StudentCourse { get; set; }
...
}
因此,通过
StudentCourse
感谢Asif,评论与学生和课程相关。这真的很有帮助。这实际上是我想要避免的:(谢谢你的回答,我明白了。我通过创建一个helper类解决了这个问题,该类接受学生对象并为学生参加的每门课程填充非虚拟评论属性。这使我能够保持整洁的真实对象结构,而不引入任何存根。无论如何,谢谢。我将你的答案标记为已接受,因为它是正确的。)事实上,ect帮助我了解EF如何处理如此复杂的关系。