其他类型考试
This commit is contained in:
@@ -66,6 +66,8 @@ public sealed class AppDbContext(DbContextOptions<AppDbContext> options)
|
||||
public DbSet<GradeRecord> GradeRecords => Set<GradeRecord>();
|
||||
public DbSet<GradeItem> GradeItems => Set<GradeItem>();
|
||||
public DbSet<GradeItemScore> GradeItemScores => Set<GradeItemScore>();
|
||||
public DbSet<OtherExamBatch> OtherExamBatches => Set<OtherExamBatch>();
|
||||
public DbSet<OtherExamResult> OtherExamResults => Set<OtherExamResult>();
|
||||
public DbSet<AttendanceSheet> AttendanceSheets => Set<AttendanceSheet>();
|
||||
public DbSet<AttendanceRecord> AttendanceRecords => Set<AttendanceRecord>();
|
||||
public DbSet<AttendanceCheckInAttempt> AttendanceCheckInAttempts =>
|
||||
@@ -450,7 +452,8 @@ public sealed class AppDbContext(DbContextOptions<AppDbContext> options)
|
||||
builder.Entity<ScheduleEntry>(entity =>
|
||||
{
|
||||
entity.Property(x => x.Kind)
|
||||
.HasDefaultValue(ScheduleEntryKind.Lecture);
|
||||
.HasDefaultValue(ScheduleEntryKind.Lecture)
|
||||
.HasSentinel((ScheduleEntryKind)0);
|
||||
entity.Property(x => x.Notes).HasMaxLength(500);
|
||||
entity.HasIndex(x => new
|
||||
{
|
||||
@@ -802,7 +805,8 @@ public sealed class AppDbContext(DbContextOptions<AppDbContext> options)
|
||||
entity.Property(x => x.Name).HasMaxLength(60);
|
||||
entity.Property(x => x.Weight).HasPrecision(5, 1);
|
||||
entity.Property(x => x.SourceType)
|
||||
.HasDefaultValue(GradeItemSourceType.Manual);
|
||||
.HasDefaultValue(GradeItemSourceType.Manual)
|
||||
.HasSentinel((GradeItemSourceType)0);
|
||||
entity.HasIndex(x => new { x.GradeSheetId, x.SortOrder });
|
||||
entity.HasOne(x => x.GradeSheet)
|
||||
.WithMany(x => x.Items)
|
||||
@@ -1186,6 +1190,27 @@ public sealed class AppDbContext(DbContextOptions<AppDbContext> options)
|
||||
entity.HasOne(x => x.GradeRecord).WithMany()
|
||||
.HasForeignKey(x => x.GradeRecordId).OnDelete(DeleteBehavior.Restrict);
|
||||
});
|
||||
builder.Entity<OtherExamBatch>(entity =>
|
||||
{
|
||||
entity.Property(x => x.ExamCode).HasMaxLength(60);
|
||||
entity.Property(x => x.Name).HasMaxLength(150);
|
||||
entity.Property(x => x.Organizer).HasMaxLength(150);
|
||||
entity.Property(x => x.LevelOptions).HasMaxLength(500);
|
||||
entity.Property(x => x.MaxScore).HasPrecision(8, 2);
|
||||
entity.HasIndex(x => new { x.Status, x.ExamDate });
|
||||
});
|
||||
builder.Entity<OtherExamResult>(entity =>
|
||||
{
|
||||
entity.Property(x => x.Score).HasPrecision(8, 2);
|
||||
entity.Property(x => x.Level).HasMaxLength(50);
|
||||
entity.Property(x => x.Notes).HasMaxLength(500);
|
||||
entity.HasIndex(x => new { x.OtherExamBatchId, x.StudentId, x.AttemptNumber }).IsUnique();
|
||||
entity.HasIndex(x => new { x.StudentId, x.OtherExamBatchId });
|
||||
entity.HasOne(x => x.OtherExamBatch).WithMany(x => x.Results)
|
||||
.HasForeignKey(x => x.OtherExamBatchId).OnDelete(DeleteBehavior.Cascade);
|
||||
entity.HasOne(x => x.Student).WithMany()
|
||||
.HasForeignKey(x => x.StudentId).OnDelete(DeleteBehavior.Restrict);
|
||||
});
|
||||
builder.Entity<WarningRule>(entity =>
|
||||
{
|
||||
entity.Property(x => x.Name).HasMaxLength(100);
|
||||
|
||||
Reference in New Issue
Block a user