44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using GerstITS.Data.EntityFramework;
|
|
using GerstITS.Examples.Data.Entities;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
|
|
|
namespace GerstITS.Examples.Data.Mappings;
|
|
|
|
internal sealed class CustomerEntityMapping : EntityMappingBase<CustomerEntity>
|
|
{
|
|
#region Properties
|
|
|
|
protected override string TableName => "Customers";
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
protected override void AddKeyMapping(EntityTypeBuilder<CustomerEntity> entity)
|
|
{
|
|
entity.HasKey(i => i.Id);
|
|
}
|
|
|
|
protected override void AddPropertyMappings(EntityTypeBuilder<CustomerEntity> 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<CustomerEntity> entity)
|
|
{
|
|
entity.HasMany(i => i.Notes)
|
|
.WithOne()
|
|
.HasForeignKey(i => i.CustomerId);
|
|
}
|
|
|
|
#endregion
|
|
}
|