我是Entity Framework Core和Code First的新手。在我的设计方法中,我在两个实体之间犯了错误。
我创建了一个表 subCourses ,该表当前设置为与 Instructors 具有一对多的关系。这意味着一个子课程可以有很多教练,这是我的错,这是我的错,我想反过来,这样一个教练可以有很多子课程。
我还没有创建任何控制器或生成任何视图或向这些表填充任何数据。
这是subCourse的缩写模型代码:
public class SubCourse
{
//Constructor
public SubCourse()
{
Instructors = new List<Instructor>();
}
[Key]
public int SubCourseID { get; set; }
[Column(TypeName = "nvarchar(10)")]
[DisplayName(" Local Course Name")]
[Required(ErrorMessage = "You must fill in Local Sub Course name.")]
public string LocalCourseCode { get; set; }
public List<Instructor> Instructors { get; set; }
}
这是教员的简化模型代码:
public class Instructor
{
[Key]
public int InstructorID { get; set; }
[MaxLength(50)]
[Column(TypeName = "nvarchar(50)")]
[DisplayName("First Name")]
[Required(ErrorMessage = "You must fill in the first name.")]
public string FirstName { get; set; }
[MaxLength(50)]
[Column(TypeName = "nvarchar(50)")]
[DisplayName("Last Name")]
[Required(ErrorMessage = "You must fill in the last name.")]
public string LastName { get; set; }
public SubCourse SubCourse { get; set; }
public int SubCourseID { get; set; }
}
我需要改变我的结构来改变我的关系,然后我可以在包管理器控制台中进行以下更改吗?
添加迁移ChangeRelationInstructorSubCourse
更新数据库
谢谢
答案 0 :(得分:1)
如果要在Instructor和SubCourse之间建立一对多关系,则可以如下更改模型设计:
public class SubCourse
{
[Key]
public int SubCourseID { get; set; }
[Column(TypeName = "nvarchar(10)")]
[DisplayName(" Local Course Name")]
[Required(ErrorMessage = "You must fill in Local Sub Course name.")]
public string LocalCourseCode { get; set; }
public int InstructorID { get; set; }
public Instructor Instructor { get; set; }
}
public class Instructor
{
public Instructor()
{
SubCourses = new List<SubCourse>();
}
[Key]
public int InstructorID { get; set; }
[MaxLength(50)]
[Column(TypeName = "nvarchar(50)")]
[DisplayName("First Name")]
[Required(ErrorMessage = "You must fill in the first name.")]
public string FirstName { get; set; }
[MaxLength(50)]
[Column(TypeName = "nvarchar(50)")]
[DisplayName("Last Name")]
[Required(ErrorMessage = "You must fill in the last name.")]
public string LastName { get; set; }
public List<SubCourse> SubCourses { get; set; }
}
然后在Package Manager控制台中生成一个包含新关系的新迁移文件
Add-Migration ChangeRelationInstructorSubCourse
将新关系更新到数据库中
Update-Database
对于EF Core中的关系,您可以抽出时间来学习the official document