代码之家  ›  专栏  ›  技术社区  ›  Frank Martin

字段密码必须是最大长度为“30”的字符串或数组类型

  •  0
  • Frank Martin  · 技术社区  · 6 年前

    我使用实体框架,并不断得到错误时,试图保存超过30个字符的密码。

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

    我不确定这个设置是在代码中定义的。数据库中的密码字段长度为100。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Harald Coppoolse    6 年前

    可以使用类中的属性或fluent 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);
        }
    }