簡體   English   中英

改變與實體框架核心的關系

[英]change relationships with entity framework core

我是 Entity Framework Core 和 Code First 的新手。 在我的設計方法中,我在兩個實體之間犯了錯誤。

我創建了一個表subCourses目前設置為與Instructors有一對多的關系。 這意味着一個子課程可以有很多講師,這就是我的錯誤,我希望反過來,以便講師可以有很多子課程。

我還沒有創建任何控制器或生成任何視圖或向這些表填充任何數據。

這是子課程的縮寫模型代碼:

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; }

}

我需要改變我的結構來改變我的關系,然后我可以在包管理器控制台中進行以下更改:

Add-Migration ChangeRelationInstructorSubCourse

更新數據庫

謝謝

如果你想在 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; }
}

然后在包管理器控制台中生成一個包含新關系的新遷移文件

Add-Migration ChangeRelationInstructorSubCourse

將新關系更新到數據庫中

Update-Database

對於EF Core中的關系,可以抽空去學習官方文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM