2014-01-07 1 views
12

Я знаю, что могу добавить аннотацию данных к каждому свойству, чтобы установить его тип столбца на VARCHAR, но у меня есть сотни столбцов, которые я хочу быть VARCHAR вместо NVARCHAR есть ли способ настроить EF6, чтобы сделать это по умолчанию?Настроить EF6 на использование varchar по умолчанию вместо nvarchar?

ответ

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 типа столбца.

+0

Знаете ли вы, что это переопределит аннотации данных? У меня есть некоторые аннотации, чтобы установить несколько столбцов в 'CHAR' – Matthew

+2

Похоже, что аннотации данных будут иметь приоритет, поскольку они являются более конкретным параметром (наиболее конкретные выигрыши). – Jimmy

+1

@Jimmy, в чем разница между настройкой в ​​вашем ответе и 'c.IsUnicode (false)'? – Shimmy