37 lines
1.1 KiB
C#
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);
|
|
}
|
|
} |