c# - Entity Framework 对现有数据的流畅 API

标签 c# mysql entity-framework ef-fluent-api

型号1)

public class Student {

    int StudentID {get;set;}

    string FirstName {get;set;}

    string LastName {get;set;}

ICollection courses = {get; set;}

}

模型2)

public class Course{

    int CourseID {get;set;}

    string CourseName {get;set;}

    int CreditHours {get;set;}

}

模型3)

public class StudentCourse{

    int StudentCourseID {get;set;}

    int StudentID {get;set;}

    int CourseID {get;set;}

}

现在我向数据库添加了一堆数据...

并且学生与类(class)之间的关系(一对多)丢失。

也就是说现在我数据库中只有三个基于上述模型的数据表

他们之间没有任何关系。

如果我创建另一个应用程序,请编写与上面的模型完全匹配的 3 个模型,并定义它们之间的一对多关系

学生和类(class)使用 Fluent API,这行得通吗?也就是说我能够关联已经存在的数据吗?

例如,

执行上述步骤并查询学生列表并执行 Student.courses.ToList(); 后具有匹配学生 ID 的类(class)是否会作为该查询的列表返回?

最佳答案

and the relationship between student to course (one to many) is lost.

该关系不起作用,因为您仅在其学生端设置了链接。您还需要为 Courses 上的关系添加端点:

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

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

这应该建立一对多关系。

尽管许多学生选修相同的类(class),所以我将其设置为多对多关系:

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

关于c# - Entity Framework 对现有数据的流畅 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216751/

相关文章:

c# - 是否在编译时对 C# 中的文字进行算术运算?

c# - ASP.NET Core RC2 项目引用 "The Dependency X could not be resolved"

mysql - 留言板结构数据库

c# - Entity Framework - CommitFailureHandler.ClearTransactionHistory()

c# - 将 CSS 类添加到代码隐藏的客户端超链接

c# - 当公式包含 TRIM 函数时 EPPlus cell.calculate() 错误

javascript - 如何根据 mysql 数据库中的值在 html 中显示(加载)开/关按钮?

php - 字段列表中的列 'wine_id' 不明确错误,无法弄清楚原因

c# - asp.net 的 dnx ef 7 迁移错误

asp.net-mvc - MigrateDatabaseToLatestVersion 未执行