C# 我应该如何在实体框架中建立两个模型之间的连接?
我正在做一个样本项目,其中有C# 我应该如何在实体框架中建立两个模型之间的连接?,c#,entity-framework,C#,Entity Framework,我正在做一个样本项目,其中有课程,由课程组成,由讲师思考 以下是我定义的模型: public class Course { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public virtual IEnumerable<Lesson> Lesson
课程
,由课程
组成,由讲师思考
以下是我定义的模型:
public class Course
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual IEnumerable<Lesson> Lessons { get; set; }
public virtual IEnumerable<Instructor> Instructors { get; set; }
public int Rating { get; set; }
}
public class Lesson
{
public enum MediaTypes
{
Audio,
Video,
Text,
PDF
}
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual IEnumerable<Course> Courses { get; set; }
public MediaTypes MediaType { get; set; }
public string MediaUrl { get; set; }
}
public class Instructor
{
public int Id { get; set; }
public virtual IEnumerable<Course> Courses { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Bio { get; set; }
public int Rating{ get; set; }
}
公共课
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共虚拟IEnumerable课程{get;set;}
公共虚拟IEnumerable指令器{get;set;}
公共整数评级{get;set;}
}
公共课
{
公共枚举媒体类型
{
音频
视频
文本,
PDF
}
公共int Id{get;set;}
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共虚拟IEnumerable课程{get;set;}
公共媒体类型媒体类型{get;set;}
公共字符串MediaUrl{get;set;}
}
公开课教师
{
公共int Id{get;set;}
公共虚拟IEnumerable课程{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串Bio{get;set;}
公共整数评级{get;set;}
}
这是我用实体框架Power Tools绘制的数据库图。
我在课程
模型中提到了讲师
和课程
,那么为什么课程
、课程
和讲师
之间没有关系呢?我做错了什么?
非常感谢。您在这里有多对多关系,因此必须有一个中间表将它们连接在一起。我想脚手架可以解决这个问题。我应该如何做到这一点?我需要在模型中添加一些东西吗?这可能已经解决了,但您还没有将这些中间表添加到图表中。顺便说一句,我想一节课只链接到一个课程,而不是它们的集合。David G是正确的。应创建映射表。完成后,如果您在SQL中的表上创建外键并重新导入表,那么将在代码中自动创建链接。如果您先编写代码(这是推荐的,因为较新版本的EF只支持此方法),那么您需要适当地设置它们。此链接应包含您需要的内容: