Exemple #1
0
 private static void ConfigureSoftDelete <TEntity>(ModelCreatingContributionContext context) where TEntity : class
 {
     if (typeof(TEntity).IsAssignableTo <ISoftDelete>())
     {
         context.ModelBuilder.Entity <TEntity>(e => e.Property(nameof(ISoftDelete.IsDeleted)).IsRequired().HasColumnName(nameof(ISoftDelete.IsDeleted)).HasDefaultValue(false));
     }
 }
Exemple #2
0
 private static void ConfigureExtraProperties <TEntity>(ModelCreatingContributionContext context) where TEntity : class
 {
     if (typeof(TEntity).IsAssignableTo <IHasExtraProperties>())
     {
         context.ModelBuilder.Entity <TEntity>(e => e.Property(x => ((IHasExtraProperties)x).ExtraProperties).HasConversion(
                                                   d => JsonConvert.SerializeObject(d, Formatting.None),
                                                   s => JsonConvert.DeserializeObject <ExtraPropertyDictionary>(s)
                                                   ).HasColumnName(nameof(IHasExtraProperties.ExtraProperties)));
     }
 }
Exemple #3
0
 public void Contributor <TEntity>(ModelCreatingContributionContext <TEntity> context) where TEntity : class
 {
     ConfigureSoftDelete(context);
     ConfigureExtraProperties(context);
 }