Я не нашел прямого решения, но начал использовать обходной путь для файлов конфигурации.Вы не указали, используете ли вы EF Configurations, поэтому извините основы, если они не нужны.
В вашем DbContext поместите следующее:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ChildrensSsiContext).Assembly);
}
Теперь создайте статический класс, как показано ниже.Он собирается забрать вашу собственность и обработать конфигурацию.
internal static class ConfigurationHelper
{
internal static void ConfigureVarcharMax(PropertyBuilder<string> propertyBuilder, bool isRequired = true)
{
propertyBuilder
.IsRequired(isRequired)
//.HasColumnType("varchar(max)");
.HasColumnType("text");
}
}
Создайте класс конфигурации для каждой сущности, которую вы хотите настроить
public class MyEntityWithVarcharMaxConfiguration
: IEntityTypeConfiguration<MyEntityWithVarcharMax>
{
public void Configure(EntityTypeBuilder<MyEntityWithVarcharMax> builder)
{
ConfigurationHelper.ConfigureVarcharMax(builder.Property(e => e.MyVarcharMaxProperty));
}
}
Оставьте HasColumnType ("text") незакомментированным для тестирования.Затем закомментируйте эту строку и раскомментируйте HasColumnType ("varchar (max)") при добавлении миграции.
Это боль, которую нужно помнить, чтобы сделать это, но это довольно простой обходной путь.