Fixed configurations of owned types

This commit is contained in:
2024-08-15 23:40:50 +03:00
parent 54e31d41fc
commit 72924fb037
18 changed files with 83 additions and 81 deletions

View File

@@ -1,15 +1,15 @@
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore;
using Domains;
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Infrastructure.Database.VisaApplications.Configuration;
public class PastVisaConfiguration : IEntityTypeConfiguration<PastVisa>
public static class PastVisaConfiguration<T> where T : class, IEntity
{
public void Configure(EntityTypeBuilder<PastVisa> entity)
public static void Configure(OwnedNavigationBuilder<T, PastVisa> entity)
{
entity.Property(p => p.Name)
.IsUnicode(false)
.HasMaxLength(70);
}
}
}

View File

@@ -0,0 +1,15 @@
using Domains;
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Infrastructure.Database.VisaApplications.Configuration
{
public static class PastVisitConfiguration<T> where T : class, IEntity
{
public static void Configure(OwnedNavigationBuilder<T, PastVisit> entity)
{
entity.HasOne(p => p.DestinationCountry).WithMany().OnDelete(DeleteBehavior.Restrict);
}
}
}

View File

@@ -1,15 +1,15 @@
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore;
using Domains;
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Infrastructure.Database.VisaApplications.Configuration;
public class PermissionToDestCountryConfiguration : IEntityTypeConfiguration<PermissionToDestCountry>
public static class PermissionToDestCountryConfiguration<T> where T : class, IEntity
{
public void Configure(EntityTypeBuilder<PermissionToDestCountry> entity)
public static void Configure(OwnedNavigationBuilder<T, PermissionToDestCountry> entity)
{
entity.Property(p => p.Issuer)
.IsUnicode(false)
.HasMaxLength(200);
}
}
}

View File

@@ -1,15 +1,15 @@
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore;
using Domains;
using Domains.VisaApplicationDomain;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Infrastructure.Database.VisaApplications.Configuration;
public class ReentryPermitConfiguration : IEntityTypeConfiguration<ReentryPermit>
public static class ReentryPermitConfiguration<T> where T : class, IEntity
{
public void Configure(EntityTypeBuilder<ReentryPermit> entity)
public static void Configure(OwnedNavigationBuilder<T, ReentryPermit> entity)
{
entity.Property(p => p.Number)
.IsUnicode(false)
.HasMaxLength(25);
}
}
}

View File

@@ -10,14 +10,16 @@ public class VisaApplicationConfiguration : IEntityTypeConfiguration<VisaApplica
{
entity.ToTable("VisaApplications");
entity.OwnsOne(va => va.ReentryPermit, ReentryPermitConfiguration<VisaApplication>.Configure);
entity.OwnsOne(va => va.PermissionToDestCountry, PermissionToDestCountryConfiguration<VisaApplication>.Configure);
entity.OwnsMany(va => va.PastVisits, PastVisitConfiguration<VisaApplication>.Configure).ToTable("PastVisits");
entity.OwnsMany(va => va.PastVisas).ToTable("PastVisas");
entity.HasOne(va => va.DestinationCountry).WithMany().OnDelete(DeleteBehavior.Restrict);
entity.HasOne(va => va.Applicant)
.WithMany(a => a.VisaApplications)
.WithMany()
.HasForeignKey(va => va.ApplicantId)
.IsRequired();
entity.OwnsOne(p => p.ReentryPermit);
entity.OwnsOne(p => p.PermissionToDestCountry);
entity.OwnsMany(p => p.PastVisits).ToTable("PastVisits");
entity.OwnsMany(p => p.PastVisas).ToTable("PastVisas");
}
}

View File

@@ -1,4 +1,4 @@
using ApplicationLayer.VisaApplications;
using ApplicationLayer.VisaApplications.NeededServices;
using Domains.VisaApplicationDomain;
using Infrastructure.Database.Generic;
using Microsoft.EntityFrameworkCore;