irc-netcore-api/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs

57 lines
1.9 KiB
C#

using IRaCIS.Core.Domain.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System.Reflection.Emit;
namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
{
public class VisitTaskConfigration : IEntityTypeConfiguration<VisitTask>
{
public void Configure(EntityTypeBuilder<VisitTask> builder)
{
builder.HasMany(t => t.JudgeVisitList).WithOne(t => t.JudgeVisitTask);
builder.HasMany(t => t.TaskMedicalReviewList).WithOne(t => t.VisitTask).HasForeignKey(t => t.VisitTaskId);
builder.HasOne(t => t.Subject).WithMany(s => s.SubjectVisitTaskList).HasForeignKey(t => t.SubjectId);
builder.HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId);
builder.HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId);
builder.HasQueryFilter(b => b.Subject.IsDeleted == false);
}
}
public class ReadingQuestionTrialConfigration : IEntityTypeConfiguration<ReadingQuestionTrial>
{
public void Configure(EntityTypeBuilder<ReadingQuestionTrial> builder)
{
builder.HasQueryFilter(p => p.IsAdditional == false);
}
}
public class SubjectUserConfigration : IEntityTypeConfiguration<SubjectUser>
{
public void Configure(EntityTypeBuilder<SubjectUser> builder)
{
builder.HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser);
}
}
public class UserConfigration : IEntityTypeConfiguration<User>
{
public void Configure(EntityTypeBuilder<User> builder)
{
builder.HasMany(t => t.VisitTaskList).WithOne(t => t.DoctorUser).HasForeignKey(t => t.DoctorUserId).IsRequired(false);
}
}
}