Ответ 1
Кажется, это ошибка (или упущение) в новом API PropertyConventionConfiguration
. Следующая конфигурация работает, поэтому она может работать как работа:
modelBuilder.Properties<string>().Configure(x => x.HasColumnType("VARCHAR"));
В моей модели у меня есть некоторые объекты, украшенные атрибутом StringLength:
[StringLength(128)]
public string FirstName { get; set; }
Также я отключил unicode для всех свойств строки следующим образом:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Properties<string>().Configure(p => p.IsUnicode(false));
}
Проблема в том, что все свойства строки, украшенные указанным атрибутом, игнорируют этот параметр при создании схемы базы данных, создавая тип данных nvarchar для соответствующих столбцов базы данных. Каков правильный способ отключения юникода в этом случае?
Кажется, это ошибка (или упущение) в новом API PropertyConventionConfiguration
. Следующая конфигурация работает, поэтому она может работать как работа:
modelBuilder.Properties<string>().Configure(x => x.HasColumnType("VARCHAR"));