forked from kulangsu/StudentTracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStudentTrackerDBModels.cs
112 lines (95 loc) · 3.05 KB
/
StudentTrackerDBModels.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Linq;
using System.Web;
using StudentTracker.Models;
using System.ComponentModel.DataAnnotations.Schema;
namespace StudentTracker.Models
{
//definition Quarter Year table
public class QuarterYear
{
[Key]
public int ID { get; set; }
public int Year { get; set; }
public string Quarter { get; set; }
public virtual ICollection<Course> Courses { get; set; }
}
//definition Classes table
public class Course
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public int QuarterYearID { get; set; }
public virtual QuarterYear QuarterYear { get; set; }
//public virtual ICollection<User> Users { get; set; }
}
public class UsersCourse
{
[Key]
public int ID { get; set; }
public string UserId { get; set; }
public int CourseId { get; set; }
}
//Course Prefix object
public class CoursePrefix
{
[Key]
public int PrefixID { get; set; }
public string PrefixName { get; set; }
}
//Course Number object
public class CourseNumber
{
[Key]
public int NumberID { get; set; }
public string Number { get; set; }
public int PrefixID { get; set; }
}
/*
public class YourNextTableHere
{
[Key]
public int ID { get; set; }
public datatype name { get; set; }
//any FK or one-many or many-many relationship below here
public virtual NextTableName TableName { get; set; }
}
*/
//Database connection EF code first
public class StudentTrackerDBContext : DbContext
{
public StudentTrackerDBContext()
: base("dbStudentTracker") { }
//add more DbSet table below here inside this class
public DbSet<QuarterYear> QuarterYears { get; set; }
public DbSet<Course> Courses { get; set; }
public DbSet<UsersCourse> UsersCourses { get; set; }
public DbSet<CoursePrefix> CoursePrefixs { get; set; }
public DbSet<CourseNumber> CourseNumbers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder); // This needs to go before the other rules!
//configure model with fluent API
modelBuilder.Entity<Course>().HasRequired(q => q.QuarterYear).WithMany(c => c.Courses).HasForeignKey(c => c.QuarterYearID);
/*
//create many-to-many relationship between Instructor and Course
modelBuilder.Entity<Course>().
HasMany(u => u.Users).
WithMany(c => c.Courses).
Map(
m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("ID");
m.ToTable("UsersCourses");
});
*/
}
}
}