34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using IRaCIS.Core.Domain.Models;
|
||
using Microsoft.EntityFrameworkCore;
|
||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||
|
||
|
||
namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
|
||
{
|
||
public class SubjectVisitConfigration : IEntityTypeConfiguration<SubjectVisit>
|
||
{
|
||
|
||
|
||
public void Configure(EntityTypeBuilder<SubjectVisit> builder)
|
||
{
|
||
// SubjectVisit 从TrialSite 导航获取 TrialSiteCode 用两个键连接
|
||
builder
|
||
.HasOne(s => s.TrialSite)
|
||
.WithMany(c => c.SubjectVisitList)
|
||
.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
||
.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
||
|
||
|
||
// 从 SubjectVisit 到 TrialSiteUserList 会用两个建 这里不行,添加患者的时候,批量添加检查批次的时候,siteId trialId 会重复 所以不能这样搞
|
||
// modelBuilder.Entity<SubjectVisit>()
|
||
//.HasMany(s => s.TrialSiteUserList)
|
||
//.WithOne(c => c.SubjectVisit)
|
||
//.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
||
//.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
||
|
||
|
||
builder.HasOne(s => s.Subject).WithMany(sv => sv.SubjectVisitList);
|
||
}
|
||
}
|
||
}
|