Поле Password должно иметь тип строки или массива с максимальной длиной 30 - PullRequest
0 голосов
/ 14 октября 2018

Я использую Entity Framework и продолжаю получать сообщение об ошибке при попытке сохранить пароль длиной более 30 символов.

The field Password must be a string or array type with a maximum length of '30'

Я не уверен, где этот параметр определен в коде,Длина поля пароля в базе данных равна 100. Я также открыл файл .edmx и изменил максимальную длину поля пароля на 100, но все равно получаю эту ошибку.

1 Ответ

0 голосов
/ 15 октября 2018

Если вы не укажете длину вашей строки, то ваш DbContext будет иметь длину по умолчанию.

Вы можете указать максимальную длину строк, используя атрибуты в ваших классах или используя свободный API.Хорошая особенность последнего метода заключается в том, что вы можете использовать свои классы для разных баз данных с разной длиной строки, точностью до десятичных знаков и т. Д. Кроме того, ваш код выглядит более понятным.

class LogInData
{
     ...
     public string Password {get; set;}
}

class MyDbcontext : DbContext
{
    public DbSet<LoginData> LoginDatas{get; set;}

    protected override OnModelCreating(...)
    {
        // the rows in the table with LoginData, have a property Password
        // specify the length of this property
        modelBuilder.Entity<LoginData>()
           .Property(loginData => loginData.Password)
           .HasMaxLength(100);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...