Я знаю, что могу добавить аннотацию данных к каждому свойству, чтобы установить его тип столбца на VARCHAR
, но у меня есть сотни столбцов, которые я хочу быть VARCHAR
вместо NVARCHAR
есть ли способ настроить EF6, чтобы сделать это по умолчанию?Настроить EF6 на использование varchar по умолчанию вместо nvarchar?
12
A
ответ
20
Глядя на конвенции EF, я думаю, что вы можете сделать что-то вроде этого:
modelBuilder.Properties<string>().Configure(c => c.HasColumnType("varchar"));
я в основном разорвал это от от http://msdn.microsoft.com/en-us/data/jj819164#order и не проверял.
[Изменить:] Как отмечает @Shimmy в комментариях, есть также c => c.IsUnicode(false)
, который, похоже, делает то же самое без hardcoding типа столбца.
Знаете ли вы, что это переопределит аннотации данных? У меня есть некоторые аннотации, чтобы установить несколько столбцов в 'CHAR' – Matthew
Похоже, что аннотации данных будут иметь приоритет, поскольку они являются более конкретным параметром (наиболее конкретные выигрыши). – Jimmy
@Jimmy, в чем разница между настройкой в вашем ответе и 'c.IsUnicode (false)'? – Shimmy