using GerstITS.Data.EntityFramework; using GerstITS.Examples.Data.Entities; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace GerstITS.Examples.Data.Mappings; internal sealed class CustomerEntityMapping : EntityMappingBase { #region Properties protected override string TableName => "Customers"; #endregion #region Methods protected override void AddKeyMapping(EntityTypeBuilder entity) { entity.HasKey(i => i.Id); } protected override void AddPropertyMappings(EntityTypeBuilder entity) { entity.Property(i => i.FirstName).HasMaxLength(100).IsRequired(); entity.Property(i => i.LastName).HasMaxLength(100).IsRequired(); entity.Property(i => i.EMail).HasMaxLength(250).IsRequired(); entity.Property(i => i.CreatedBy).HasMaxLength(100); entity.Property(i => i.ModifiedBy).HasMaxLength(100); entity.Property(i => i.DeactivatedBy).HasMaxLength(100); entity.Property(i => i.Version).IsConcurrencyToken(); } protected override void AddNavigationProperties(EntityTypeBuilder entity) { entity.HasMany(i => i.Notes) .WithOne() .HasForeignKey(i => i.CustomerId); } #endregion }