Я пытаюсь установить значение по умолчанию для одного из моих столбцов (IsActive) на значение по умолчанию следующим образом, но оно никогда не работает. Я попытался использовать как DefaultValue, так и DefaultValueSql самостоятельно, и, как вы можете видеть ниже, я пытаюсь использовать их вместе. Любая идея, если я что-то упустил?
public partial class Initial : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.TestDB",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(nullable: false, maxLength: 64),
Description = c.String(nullable: false, storeType: "ntext"),
Comment = c.String(maxLength: 255),
IsActive = c.Boolean(nullable: false, defaultValueSql: "1", defaultValue: true),
CreatedOn = c.DateTimeOffset(nullable: false, precision: 7),
CreatedBy = c.String(maxLength: 128),
ModifiedOn = c.DateTimeOffset(nullable: false, precision: 7),
ModifiedBy = c.String(maxLength: 128),
})
.PrimaryKey(t => t.GlobalKpiId);
}
public override void Down()
{
DropTable("dbo.TestDB");
}
Даже после этого, когда я создаю записи в БД, значение IsActive всегда ложно.
Не добавляйте этот столбец в CreateTable
и пытайтесь добавить его таким образом:
public override void Up()
{
//...
AddColumn("dbo.TestDB", "IsActive", c => c.Boolean(nullable: false, defaultValue: true));
}
Другой вариант - инициализировать это свойство в конструкторе вашего объекта:
public YourEntity()
{
IsActive=true;
}