Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core mvc 更改与实体框架核心的关系_Asp.net Core Mvc_Entity Framework Core - Fatal编程技术网

Asp.net core mvc 更改与实体框架核心的关系

Asp.net core mvc 更改与实体框架核心的关系,asp.net-core-mvc,entity-framework-core,Asp.net Core Mvc,Entity Framework Core,我第一次接触实体框架核心和代码。在我的设计方法中,我在两个实体之间犯了错误 我已经创建了一个表subCourses,该表当前设置为与讲师建立一对多关系。这意味着一个副课程可以有很多讲师,这就是我的错误所在,我想让它反过来,这样一个讲师可以有很多副课程 我还没有创建任何控制器或生成任何视图,也没有向这些表填充任何数据 这是分课程的简化模型代码: public class SubCourse { //Constructor public SubCourse() {

我第一次接触实体框架核心和代码。在我的设计方法中,我在两个实体之间犯了错误

我已经创建了一个表subCourses,该表当前设置为与讲师建立一对多关系。这意味着一个副课程可以有很多讲师,这就是我的错误所在,我想让它反过来,这样一个讲师可以有很多副课程

我还没有创建任何控制器或生成任何视图,也没有向这些表填充任何数据

这是分课程的简化模型代码:

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; }
}
我需要在我的结构中更改什么才能在我的关系中进行切换,然后我可以在package manager控制台中更改:

添加迁移ChangeRelationInstructor子课程

更新数据库


谢谢

如果您想在讲师和次级课程之间建立一对多的关系,您只需更改模型设计,如下所示:

 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; }
}
将新关系更新到数据库中

Update-Database
对于EF Core中的关系,您可以留出时间学习

我假设一(讲师)对多(子课程)关系,而不是多对多关系,如果是这样,请从讲师中删除SubCourseID,并将SubCourse属性设置为ICollection类型,然后将讲师属性和讲师ID属性添加到SubCourse中
Add-Migration ChangeRelationInstructorSubCourse
Update-Database