实体框架代码优先:实体拆分

时间:2012-09-28 17:54:05

标签: frameworks entity

是否可以映射以下场景?

数据表

学生

+ ID:int PK
+名称:varchar(200)

+ ID:int PK
+学生ID:FK
+ CourseID:FK
+ EnrollmentDate:DateTime

课程

+ ID:int PK
+名称:varchar(200)

我想将表格映射到下面的实体。

public class Student
{
    [Key]
    public int ID {get;set;}
    public string Name {get;set;}
    public virtual ICollection<Class> Classes {get;set;}
}

public class Student { [Key] public int ID {get;set;} public string Name {get;set;} public virtual ICollection<Class> Classes {get;set;} }

public class Class
{
[Key]
public int ID {get;set;}
public Student Student {get;set;}
public DateTime EnrollmentDate {get;set;}
public string Name {get;set;} // this comes from the Courses data table
}

1 个答案:

答案 0 :(得分:0)

这应该是如何建立您需要的FK关系:

public class Student
{
   [Key]
   public int StudentId {get;set;}
   public string Name {get;set;}
}

public class Class
{
   [Key]
   public int ClassId {get;set;}
   public DateTime EnrollmentDate {get;set;}

   //foreign keys
   public int CourseId {get;set;}
   public string StudentId {get;set;} 

   //virtual constraint to link to referenced tables
   public virtual Course Course {get;set;}
   public virtual Student Student {get;set;}
}

public class Course
{
   [Key]
   public int CourseId {get;set;}
   public string CourseName {get;set;}
}