簡體   English   中英

實體框架流利的API在現有數據上

[英]Entity framework fluent API on already existing data

型號1)

public class Student {

    int StudentID {get;set;}

    string FirstName {get;set;}

    string LastName {get;set;}

ICollection courses = {get; set;}

}

MODEL2)

public class Course{

    int CourseID {get;set;}

    string CourseName {get;set;}

    int CreditHours {get;set;}

}

Model3)

public class StudentCourse{

    int StudentCourseID {get;set;}

    int StudentID {get;set;}

    int CourseID {get;set;}

}

現在我將一堆數據添加到數據庫中...

學生與課程之間的關系(一對多)就會丟失。

現在我在數據庫中僅基於上述模型的三個數據表

他們之間沒有任何關系。

如果我創建另一個應用程序,請編寫與上述模型完全匹配的3個模型,並定義之間的一對多關系

學生和課程使用流暢的API,行得通嗎? 那我將能夠關聯已經存在的數據嗎?

例如,

完成上述步驟並查詢了學生列表並執行了student.courses.ToList();之后; 是否將具有匹配StudentID的課程作為該查詢的列表返回?

學生與課程之間的關系(一對多)就會丟失。

該關系不起作用,因為您僅在它的“ Student側設置了一個鏈接。 您還需要為Courses上的關系添加一個端點:

public class Student {
    public virtual ICollection<Course> Courses { get; set; }
}

public class Course {
    public virtual Student Student { get; set; }
}

這應該建立一對多關系。

不過,許多學生都參加相同的課程,因此我將其設置為多對多關系:

public class Student {
    public virtual ICollection<Course> Courses { get; set; }
}

public class Course {
    public virtual ICollection<Student> Students { get; set; }
}

我認為這應該消除對StudentCourse表的需要,但是我在這一點上正在接受糾正。

現在,對於它們之間的鏈接(StudentCourse),您也將希望在此關系上正確構建關系:

public class StudentCourse
{
    public int Id { get; set; }
    public virtual Student Student { get; set; }
    public virtual Course Course { get; set; }
}

暫無
暫無

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

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