Files
TechHelper/TechHelper.Server/Context/Configuration/AssignmentAttachmentConfiguration.cs
SpecialX ac900159ba
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s
重构项目结构,移除Assignment相关功能,优化Submission模块
2025-10-09 18:57:28 +08:00

49 lines
1.6 KiB
C#

using Entities.Contracts;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore;
namespace TechHelper.Context.Configuration
{
public class AssignmentAttachmentConfiguration : IEntityTypeConfiguration<ExamAttachment>
{
public void Configure(EntityTypeBuilder<ExamAttachment> builder)
{
builder.ToTable("assignment_attachments");
builder.HasKey(aa => aa.Id);
builder.Property(aa => aa.Id)
.HasColumnName("id");
builder.Property(aa => aa.AssignmentId)
.HasColumnName("assignment_id")
.IsRequired();
builder.Property(aa => aa.FilePath)
.HasColumnName("file_path")
.IsRequired()
.HasMaxLength(255);
builder.Property(aa => aa.FileName)
.HasColumnName("file_name")
.IsRequired()
.HasMaxLength(255);
builder.Property(aa => aa.UploadedAt)
.HasColumnName("uploaded_at")
.ValueGeneratedOnAdd(); // Set value on creation
builder.Property(aa => aa.IsDeleted)
.HasColumnName("deleted")
.HasDefaultValue(false);
// Configure the relationship explicitly
builder.HasOne(aa => aa.Exam) // An AssignmentAttachment has one Assignment
.WithMany(a => a.ExamAttachments) // An Assignment has many AssignmentAttachments (assuming 'Attachments' collection in Assignment)
.HasForeignKey(aa => aa.AssignmentId) // The foreign key is AssignmentAttachment.AssignmentId
.IsRequired() // It's a required relationship based on your [Required] attribute
.OnDelete(DeleteBehavior.Cascade); // If an Assignment is deleted, its attachments should also be deleted
}
}
}