添加项目文件。
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using Entities.Contracts;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace TechHelper.Context.Configuration
|
||||
{
|
||||
public class AssignmentClassConfiguration : IEntityTypeConfiguration<AssignmentClass>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<AssignmentClass> builder)
|
||||
{
|
||||
// 设置表名为 "assignment_class"
|
||||
builder.ToTable("assignment_class");
|
||||
|
||||
// 设置复合主键
|
||||
builder.HasKey(ac => new { ac.AssignmentId, ac.ClassId });
|
||||
|
||||
// 配置 AssignmentId 列名
|
||||
builder.Property(ac => ac.AssignmentId)
|
||||
.HasColumnName("assignment_id");
|
||||
|
||||
// 配置 ClassId 列名
|
||||
builder.Property(ac => ac.ClassId)
|
||||
.HasColumnName("class_id");
|
||||
|
||||
// 配置 AssignedAt 列名
|
||||
builder.Property(ac => ac.AssignedAt)
|
||||
.HasColumnName("assigned_at")
|
||||
.IsRequired(); // 通常时间字段不能为空
|
||||
|
||||
// 配置 IsDeleted 列名
|
||||
builder.Property(ac => ac.IsDeleted)
|
||||
.HasColumnName("deleted")
|
||||
.HasDefaultValue(false); // 可以设置默认值,表示默认未删除
|
||||
|
||||
// 配置到 Assignment 的关系 (多对一)
|
||||
// 假设 Assignment 类中有一个名为 AssignmentClasses 的集合属性
|
||||
builder.HasOne(ac => ac.Assignment) // AssignmentClass 有一个 Assignment
|
||||
.WithMany(a => a.AssignmentClasses) // Assignment 有多个 AssignmentClass 记录
|
||||
.HasForeignKey(ac => ac.AssignmentId) // 通过 AssignmentId 建立外键
|
||||
.OnDelete(DeleteBehavior.Cascade); // 当 Assignment 被删除时,相关的 AssignmentClass 记录也级联删除
|
||||
|
||||
// 配置到 Class 的关系 (多对一)
|
||||
// 假设 Class 类中有一个名为 AssignmentClasses 的集合属性
|
||||
builder.HasOne(ac => ac.Class) // AssignmentClass 有一个 Class
|
||||
.WithMany(c => c.AssignmentClasses) // Class 有多个 AssignmentClass 记录
|
||||
.HasForeignKey(ac => ac.ClassId) // 通过 ClassId 建立外键
|
||||
.OnDelete(DeleteBehavior.Cascade); // 当 Class 被删除时,相关的 AssignmentClass 记录也级联删除
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user