public static void OnModelCreating(DbModelBuilder modelBuilder, Type contextProviderType) { ApiModelBuilder apiModel = ModelCache.GetApiModel(contextProviderType); // Ignore all entities not part of the API model modelBuilder.Ignore(apiModel.GetIgnoredEntityTypes()); // Explicitly ignored properties foreach (var entityTypeConfig in apiModel.GetEntityTypeConfigs()) { foreach (PropertyInfo propertyInfo in entityTypeConfig.GetIgnoredProperties()) { // Call the Ignore method below with the type parameters for this PropertyInfo IgnoreMethodInfo.MakeGenericMethod(entityTypeConfig.Type, propertyInfo.PropertyType).Invoke( null, new object[] { modelBuilder, propertyInfo }); } } }
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { JsonProperty property = base.CreateProperty(member, memberSerialization); if (this.model == null) { this.model = ModelCache.GetApiModel(this.ContextProviderType); } ApiEntityTypeConfiguration entityTypeConfig; ApiPropertyConfiguration propertyConfig; if (this.model.TryGetEntityTypeConfig(member.DeclaringType, out entityTypeConfig) && entityTypeConfig.TryGetPropertyConfig((PropertyInfo)member, out propertyConfig) && propertyConfig.Ignored) { property.Ignored = true; } return(property); }