public static void ExplicitSetShadowPropertiesFromDefaults(this AcrDbContext data) { data.BeforeAll.Subscribe(entries => { foreach (var entry in entries) { foreach (var prop in entry.Properties) { if (prop.CurrentValue == null && prop.Metadata.IsShadowProperty && !prop.Metadata.IsNullable) { prop.CurrentValue = prop.Metadata.Relational().DefaultValue; } } } }); }
public static void SoftDeletes(this AcrDbContext data) { data.WhenModelBuilding.Subscribe(x => x.SoftDeletes()); data.BeforeEach.Subscribe(x => { if (x.Entity is ISoftDeleteEntity softDelete) { switch (x.State) { case EntityState.Added: softDelete.IsDeleted = false; break; case EntityState.Deleted: softDelete.IsDeleted = true; x.State = EntityState.Modified; break; } } }); }
public static void DateStamps(this AcrDbContext data) => data .BeforeEach .Where(x => x.Entity is IDateStampEntity) .Subscribe(x =>