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);
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |