![](/img/trans.png)
[英]How does automatic migrations work internally in Entity Framework 4.3
[英]How does the DefaultValue for Entity Framework Migrations work?
我試圖將我的一個列(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");
}
即使這樣做,每當我在DB中創建記錄時,IsActive的值始終為false。
不要在CreateTable
添加該列並嘗試以這種方式添加它:
public override void Up()
{
//...
AddColumn("dbo.TestDB", "IsActive", c => c.Boolean(nullable: false, defaultValue: true));
}
另一個變體是在實體的構造函數中初始化該屬性:
public YourEntity()
{
IsActive=true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.