using Gremlin_BlazorServer.Data.EntityClasses; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Gremlin_BlazorServer.Data.DBClasses { public class AccountConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder accountEntity) { _ = accountEntity.HasKey(e => e.AccountId); _ = accountEntity.HasMany(d => d.Contacts).WithOne(p => p.Account).IsRequired(); _ = accountEntity.HasOne(d => d.AccountType).WithMany(p => p.Accounts).IsRequired().OnDelete(DeleteBehavior.Restrict); _ = accountEntity.HasOne(d => d.SubMarket).WithMany(p => p.Accounts).IsRequired().OnDelete(DeleteBehavior.Restrict); _ = accountEntity.HasAlternateKey(e => e.SapAccountNumber); // =Unique _ = accountEntity.Property(e => e.AccountId).ValueGeneratedOnAdd(); _ = accountEntity.Property(e => e.ParentAccountId).HasDefaultValue(0); _ = accountEntity.Property(e => e.AccountName).IsRequired().HasMaxLength(250); _ = accountEntity.Property(e => e.Notes).HasDefaultValue(""); _ = accountEntity.Property(e => e.Street).IsRequired().HasMaxLength(100); _ = accountEntity.Property(e => e.Zip).IsRequired().HasColumnType("Char(5)"); _ = accountEntity.Property(e => e.City).IsRequired().HasMaxLength(50); _ = accountEntity.Property(e => e.FloorOrBuilding).HasMaxLength(50); _ = accountEntity.Property(e => e.Longitude).HasDefaultValue(0); _ = accountEntity.Property(e => e.Latitude).HasDefaultValue(0); _ = accountEntity.Property(e => e.PhoneNumber).IsRequired().HasMaxLength(30); _ = accountEntity.Property(e => e.FaxNumber).HasMaxLength(30).HasDefaultValue(""); _ = accountEntity.Property(e => e.Webpage).HasMaxLength(250).HasDefaultValue(""); _ = accountEntity.Property(e => e.EMail).HasMaxLength(150).HasDefaultValue(""); _ = accountEntity.Property(e => e.SapAccountNumber).IsRequired(); _ = accountEntity.Property(e => e.AccountCreatedInSapOn).IsRequired(); _ = accountEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = accountEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = accountEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = accountEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = accountEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = accountEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); //.HasDefaultValue("Active") //Default-Wert wird nicht gesetzt?!? Bug in EF Core? _ = accountEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); //.IsRowVersion() impliziert .ValueGeneratedOnAddOrUpdate() und .IsConcurrencyToken(true) _ = accountEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class ContactConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder contactEntity) { _ = contactEntity.HasKey(e => e.ContactId); _ = contactEntity.HasOne(p => p.Account).WithMany(d => d.Contacts).IsRequired(); //entity.HasAlternateKey(e => e.SAPContactNumber); _ = contactEntity.Property(e => e.ContactId); _ = contactEntity.Property(e => e.SapContactNumber).IsRequired(); _ = contactEntity.Property(e => e.AcademicTitle).HasDefaultValue(""); _ = contactEntity.Property(e => e.FirstName).HasDefaultValue(""); _ = contactEntity.Property(e => e.LastName).IsRequired(); _ = contactEntity.Property(e => e.Gender).HasDefaultValue(0); //.IsRequired(true) darf nicht gesetzt werden, da sonst vom DB-Engine NULL nicht erlaubt wird (trotz Definition als Bool? im Code. MySQL kennt kein Bool, sondern wandelt das intern in Tinyint um). _ = contactEntity.Property(e => e.OptInStatus).HasDefaultValue(false); _ = contactEntity.Property(e => e.IsReference).HasDefaultValue(false); _ = contactEntity.Property(e => e.Notes).HasDefaultValue(""); _ = contactEntity.Property(e => e.ValidatedContact).HasDefaultValue(false); _ = contactEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = contactEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = contactEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = contactEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = contactEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = contactEntity.Property(e => e.DataStatus).IsRequired(); //.HasDefaultValue("Active") //Default-Wert wird nicht gesetzt?!? Bug in EF Core? _ = contactEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); //.IsRowVersion() impliziert .ValueGeneratedOnAddOrUpdate() und .IsConcurrencyToken(true) _ = contactEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class QuoteConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder quoteEntity) { _ = quoteEntity.HasKey(e => e.QuoteId); _ = quoteEntity.HasMany(d => d.LineItems).WithOne(p => p.Quote).IsRequired(false).OnDelete(DeleteBehavior.Cascade); _ = quoteEntity.Property(e => e.QuotationNumber).HasColumnType("VARCHAR(255)").IsRequired().ValueGeneratedOnAdd(); _ = quoteEntity.Property(e => e.QuotationDate).IsRequired().ValueGeneratedOnAdd(); _ = quoteEntity.Property(e => e.ValidUntil); _ = quoteEntity.Property(e => e.ValidFor).IsRequired(); _ = quoteEntity.Ignore("SalesRep"); _ = quoteEntity.Property(e => e.TotalListprice); _ = quoteEntity.Property(e => e.TotalDiscount); _ = quoteEntity.Property(e => e.TotalNet); _ = quoteEntity.Property(e => e.Vat); _ = quoteEntity.Property(e => e.TotalGross); _ = quoteEntity.Property(e => e.QuoteContains3Pp).HasDefaultValue(false); _ = quoteEntity.Property(e => e.QuoteContainsRb).HasDefaultValue(false); _ = quoteEntity.Property(e => e.QuoteTemplate).HasDefaultValue(""); _ = quoteEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = quoteEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = quoteEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = quoteEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = quoteEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = quoteEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = quoteEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = quoteEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class LineItemConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder entity) { _ = entity.HasKey(e => e.LineItemId); _ = entity.HasOne(p => p.Quote).WithMany(d => d.LineItems).HasForeignKey(fk => fk.QuoteId).IsRequired().OnDelete(DeleteBehavior.Cascade); _ = entity.Property(e => e.Position).IsRequired(); _ = entity.Property(e => e.Amount).IsRequired(); _ = entity.Property(e => e.ProductNumber).IsRequired(); _ = entity.Property(e => e.OptionNumber).HasDefaultValue(""); _ = entity.Property(e => e.SapShortDescription).HasDefaultValue(""); _ = entity.Property(e => e.SapLongDescription).HasDefaultValue(""); _ = entity.Property(e => e.ProductLine).HasDefaultValue(""); _ = entity.Property(e => e.TotalDiscount).IsRequired().HasDefaultValue(0); _ = entity.Property(e => e.SalesDiscount).IsRequired().HasDefaultValue(0); _ = entity.Property(e => e.PromotionalDiscount).IsRequired().HasDefaultValue(0); _ = entity.Property(e => e.ContractualDiscount).IsRequired().HasDefaultValue(0); _ = entity.Property(e => e.DemoDiscount).IsRequired().HasDefaultValue(0); _ = entity.Property(e => e.ListPrice).IsRequired(); _ = entity.Property(e => e.ExtendedListPrice).IsRequired(); _ = entity.Property(e => e.NetPrice).IsRequired(); _ = entity.Property(e => e.Total).IsRequired(); _ = entity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = entity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = entity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = entity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = entity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = entity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = entity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = entity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class ProductConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder productEntity) { _ = productEntity.HasKey(e => e.ProductId); _ = productEntity.HasOne(d => d.CustomDescription).WithMany(p => p.Products).HasForeignKey("CustomDescriptionId").IsRequired().OnDelete(DeleteBehavior.SetNull); _ = productEntity.HasOne(p => p.ProductLine).WithMany(d => d.Products).HasForeignKey("ProductLineCode").IsRequired().OnDelete(DeleteBehavior.Restrict); _ = productEntity.Property(e => e.CustomDescriptionId).IsRequired(); _ = productEntity.Property(e => e.ProductNumber).IsRequired(); _ = productEntity.Property(e => e.OptionNumber).HasDefaultValue(""); _ = productEntity.Property(e => e.SapShortDescription).HasDefaultValue(""); _ = productEntity.Property(e => e.SapLongDescription).HasDefaultValue(""); _ = productEntity.Property(e => e.Weight).HasDefaultValue(0); _ = productEntity.Property(e => e.ProductStatus).HasDefaultValue("Active"); _ = productEntity.Property(e => e.IntroductionDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = productEntity.Property(e => e.ListPrice).IsRequired(); _ = productEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = productEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = productEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = productEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = productEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = productEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = productEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = productEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class CustomDescriptionConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder customDescriptionEntity) { _ = customDescriptionEntity.HasKey(e => e.CustomDescriptionId); _ = customDescriptionEntity.HasMany(p => p.Products).WithOne(d => d.CustomDescription).IsRequired(false); _ = customDescriptionEntity.HasOne(p => p.Supplier).WithMany(d => d.CustomDescriptions).IsRequired(); _ = customDescriptionEntity.Property(e => e.ProductNumber).IsRequired(); _ = customDescriptionEntity.Property(e => e.OptionNumber).HasDefaultValue(""); _ = customDescriptionEntity.Property(e => e.Heading).IsRequired(); _ = customDescriptionEntity.Property(e => e.DescriptionText).HasDefaultValue(""); _ = customDescriptionEntity.Property(e => e.CoverletterText).HasDefaultValue(""); _ = customDescriptionEntity.Property(e => e.Notes).HasDefaultValue(""); _ = customDescriptionEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = customDescriptionEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = customDescriptionEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = customDescriptionEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = customDescriptionEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = customDescriptionEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = customDescriptionEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = customDescriptionEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class ProductLineConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder productLineEntity) { _ = productLineEntity.HasMany(p => p.Products).WithOne(d => d.ProductLine).IsRequired().OnDelete(DeleteBehavior.Restrict); _ = productLineEntity.Property(e => e.ProductLineDescription).IsRequired(); _ = productLineEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = productLineEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = productLineEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = productLineEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = productLineEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = productLineEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = productLineEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = productLineEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class AccountTypeConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder accountTypeEntity) { //entity.HasKey(e => e.AccountTypeCode); //entity.HasMany(p => p.Accounts).WithOne(d => d.AccountType); //already defined in class Account _ = accountTypeEntity.Property(e => e.AccountTypeCode).IsRequired().HasColumnType("Char(3)"); _ = accountTypeEntity.Property(e => e.AccountTypeDescription).HasColumnType("Varchar(1000)").IsRequired(); _ = accountTypeEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = accountTypeEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = accountTypeEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = accountTypeEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = accountTypeEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = accountTypeEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = accountTypeEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = accountTypeEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class SubMarketConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder subMarketEntity) { //entity.HasKey(e => e.SubMarketCode); //entity.HasMany(p => p.Accounts).WithOne(d => d.SubMarket); //already defined in class Account _ = subMarketEntity.Property(e => e.SubMarketCode).HasColumnType("Char(3)"); _ = subMarketEntity.Property(e => e.SubMarketDescription).HasColumnType("Varchar(1000)").IsRequired(); _ = subMarketEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = subMarketEntity.Property(e => e.DataValidFrom).HasColumnType("DATETIME").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = subMarketEntity.Property(e => e.DataValidUntil).HasColumnType("DATETIME").HasDefaultValueSql("'9999-12-31 23:59:59.000000'").ValueGeneratedOnAdd(); _ = subMarketEntity.Property(e => e.DataVersionNumber).HasDefaultValue(1).IsRequired(); _ = subMarketEntity.Property(e => e.DataVersionComment).HasDefaultValue(""); _ = subMarketEntity.Property(e => e.DataStatus).IsRequired().HasDefaultValue("Active"); _ = subMarketEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = subMarketEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").IsRequired().HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class RegisteredUserConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder registeredUserEntity) { _ = registeredUserEntity.HasKey(e => e.RegisteredUserId); _ = registeredUserEntity.HasMany(d => d.RuSettings).WithOne(p => p.RegisteredUser).IsRequired(); _ = registeredUserEntity.Property(e => e.UserName).IsRequired(); _ = registeredUserEntity.Property(e => e.PasswordHash).IsRequired(); _ = registeredUserEntity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = registeredUserEntity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = registeredUserEntity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } public class RuSettingsConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder rUSettingsEntitity) { _ = rUSettingsEntitity.HasKey(e => e.RuSettingsId); _ = rUSettingsEntitity.HasOne(d => d.RegisteredUser).WithMany(p => p.RuSettings).IsRequired(); _ = rUSettingsEntitity.Property(e => e.SettingKey).IsRequired(); _ = rUSettingsEntitity.Property(e => e.SettingValue).IsRequired(); _ = rUSettingsEntitity.Property(e => e.DataCreationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP").ValueGeneratedOnAdd(); _ = rUSettingsEntitity.Property(e => e.DataModificationDate).HasColumnType("TIMESTAMP").HasDefaultValueSql("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").ValueGeneratedOnAddOrUpdate().IsConcurrencyToken(); _ = rUSettingsEntitity.Property(e => e.DataModificationByUser).HasColumnType("TINYTEXT").HasDefaultValueSql("ON INSERT CURRENT_USER() ON UPDATE CURRENT_USER()"); } } }