2013-07-31 2 views
2

Я использую Entity Framework и добавляю User (UserName и Password) к таблице базы данных. Эта таблица имеет столбец UserName (nchar(20)) и колонку Password, которая хэшируется (varchar(50)).Пробел при извлечении строки базы данных из Entity Framework

Проблема возникает, когда я извлекаю пользователя из базы данных. Возвращаемое имя пользователя заполняется пробелом в конце (до заполнения 20 символов). Я решил это временно, используя метод Trim(), однако это кажется непрактичным, учитывая, что мне нужно сделать это на каждом столбце, возвращенном из базы данных.

Какое решение?

Спасибо!

+2

Вы должны ** НЕ использовать ** фиксированные длины 'CHAR (n)' или 'NCHAR (n)' для чего-либо более чем, возможно, 5, 6 символов; они подходят для вещей, таких как ISO-код страны или валюты, но для чего-либо еще используют переменные длины VARCHAR (n) 'или' NVARCHAR (n) '- они не заполняются пробелами до их определенной длины - они только хранить то, что действительно нужно. Это ** базовый дизайн базы данных 101 ** - у него абсолютно нет ничего *** с Entity Framework! –

ответ

7

Вы должны преобразовать свою колонку в nvarchar, если хотите, чтобы ваш столбец избегал лишних пробелов. Мне лично не нравится использовать столбцы char (n) для значений, которые не имеют фиксированной длины. В противном случае вам необходимо продолжить обрезку

Смежные вопросы