public static void ShadowProperties(this ModelBuilder modelBuilder) { foreach (var tp in modelBuilder.Model.GetEntityTypes()) { Type t = tp.ClrType; // set auditing properties if (typeof(IAuditable).IsAssignableFrom(t)) { var method = SetAuditingShadowPropertiesMethodInfo.MakeGenericMethod(t); method.Invoke(modelBuilder, new object[] { modelBuilder }); } // set tenant properties // if (typeof(ITenant).IsAssignableFrom(t)) // { // var method = SetTenantShadowPropertyMethodInfo.MakeGenericMethod(t); // method.Invoke(modelBuilder, new object[] { modelBuilder }); // // SetTenantIdClusteredIndexsMethodInfo.MakeGenericMethod(t).Invoke(modelBuilder, new object[] { modelBuilder }); // } // set soft delete property if (typeof(ISoftDelete).IsAssignableFrom(t)) { var method = SetIsDeletedShadowPropertyMethodInfo.MakeGenericMethod(t); method.Invoke(modelBuilder, new object[] { modelBuilder }); } } }
public static void ShadowProperties(this ModelBuilder modelBuilder) { foreach (var tp in modelBuilder.Model.GetEntityTypes()) { Type t = tp.ClrType; // set soft delete property if (typeof(ISoftDelete).IsAssignableFrom(t)) { var method = SetIsDeletedShadowPropertyMethodInfo.MakeGenericMethod(t); method.Invoke(modelBuilder, new object[] { modelBuilder }); } } }