我正在使用数据库中的实体代码优先。这是我的user
模型。
public partial class User
{
//other fields
[Required]
[MaxLength(15)]
public string Passkey { get; set; }
[Required]
public bool isAdmin { get; set; }
}
下面的代码是在我想将表中的Passkey
列Users
从varbinary
更改为时生成的,我通过将模型中varchar
的类型从更改为byte
更改为(这是更改后的形式)。我能够更新数据类型。string
public string Passkey { get; set; }
public partial class AddPasskey : DbMigration
{
public override void Up()
{
AlterColumn("dbo.Users", "Passkey", c => c.String(nullable: false, maxLength: 15));
}
public override void Down()
{
AlterColumn("dbo.Users", "Passkey", c => c.Binary(nullable: false, maxLength: 15));
}
}
我将此“isAdmin”属性设置为required
. 我想删除此required
验证,并将其默认值设置为 0。我复制了为迁移自动生成的代码Passkey
并对其进行了更改。以下是更改后的代码,这是错误的。
public partial class AddisAdmin : DbMigration
{
public override void Up()
{
AlterColumn("dbo.Users", "isAdmin", c => c.bool(nullable: false, defaultValue:0));
}
public override void Down()
{
AlterColumn("dbo.Users", "isAdmin", c => c.bool(nullable: false));
}
}
如何执行此迁移?更新数据库中指定的字段的正确语法是什么bit
?