Почему атрибут StringLength в EF Core 3.1 удваивает SQL длину столбца - PullRequest
0 голосов
/ 19 июня 2020

Я использую EF core 3.1 Подход с использованием кода. Когда я указываю [StringLength(51)] для параметра модели данных, эквивалентная длина столбца SQL указывается как nvarchar(102). Почему удваивается? Что мне делать, чтобы получить такую ​​же максимальную длину и в столбце SQL?

Примечание: MS SQL Сервер - это мой бэкэнд.

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

Думаю, можно использовать

[MaxLength(51)] // nvarchar(51)
public string Email{ get; set; }
0 голосов
/ 19 июня 2020

Спасибо @Igor за ваш комментарий. Моя беда, он имел такую ​​же длину и в SQL. Удвоение предназначено для размера в байтах, т.е. для каждого символа это два байта. Приведенный ниже запрос полезен для понимания этого, поэтому отправьте его как ответ, который поможет кому-то вроде меня.

select COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH       
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='Table_Name'```
...