Настройте entity framework для использования char вместо varchar

#c# #entity-framework #.net-core #entity-framework-core #entity-framework-core-2.2

#c# #entity-framework #.net-ядро #entity-framework-core #entity-framework-core-2.2

Вопрос:

Как я могу настроить модель entity Framework для генерации таблицы, содержащей столбцы типа CHAR(X) вместо VARCHAR(X) или NVARCHAR(X) ?

Комментарии:

1. В чем вопрос? Как использовать char параметры вместо nvarchar ? Или как генерировать таблицы, используя char вместо nvarchar?

Ответ №1:

Использовать CHAR/NCHAR вместо VARCHAR/NVARCHAR

Используйте IsFixedLength метод в дополнение к HasMaxLength .

   builder.Property(x => x.MyField).HasMaxLength(10).IsFixedLength();
  

Использовать CHAR/VARCHAR вместо NCHAR/NVARCHAR

Вам нужно вызвать IsUnicode(false)

   builder.Property(x => x.MyField).IsUnicode(false);
  

Комментарии:

1. Зачем вообще использовать char ? Это не принесет никакой пользы при выполнении запросов. Это имеет смысл, если для создания базы данных используется EF. В этом случае, вероятно, лучше создать надлежащие скрипты, чтобы обеспечить использование правильных параметров сортировки и избежать ошибок преобразования