Files
2025-04-13 22:23:25 +03:30

37 lines
1.1 KiB
C#

using System;
using _0_Framework.Application;
using Company.Domain.LoanAgg.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace CompanyManagment.EFCore.Mapping;
public class LoanMapping : IEntityTypeConfiguration<Loan>
{
public void Configure(EntityTypeBuilder<Loan> builder)
{
builder.ToTable("Loan");
builder.HasKey(x => x.id);
builder.Property(x => x.Count).HasMaxLength(3);
builder.OwnsMany(x => x.LoanInstallments, installment =>
{
installment.HasKey(x=>x.Id);
installment.Property(x => x.Month).HasMaxLength(2);
installment.Property(x => x.Year).HasMaxLength(4);
installment.Property(x => x.IsActive).HasConversion(
v => v.ToString(),
v => (IsActive)Enum.Parse(typeof(IsActive), v)).HasMaxLength(5);
installment.WithOwner().HasForeignKey(x=>x.LoanId);
});
builder.Ignore(x => x.StartDateYear);
builder.Ignore(x => x.StartDateMonth);
builder.Property(x => x.CreatedByUserType).HasConversion<string>().HasMaxLength(50);
}
}