EF6 Add-Migration是否不可为空?

时间:2014-03-07 09:01:05

标签: entity-framework

我将首先从代码中添加一个NOT NULL NVARCHAR列:

public class ApplicationUser : IdentityUser
{
    [Required, MaxLength(10), MinLength(5)] 
    public string StaffCode { get; set; }
}

然后我在Nuget控制台上运行“添加迁移用户”

它在下面生成迁移类:

public partial class abc : DbMigration
{
    public override void Up()
    {
        AlterColumn("dbo.AspNetUsers", "StaffCode", c => c.String(maxLength: 10));
    }

    public override void Down()
    {
        AlterColumn("dbo.AspNetUsers", "StaffCode", c => c.String());
    }
} 

minlength:5 nullable:false 消失了。 我打电话手动添加它并更新到数据库,但似乎不合理。

感谢。

1 个答案:

答案 0 :(得分:0)

我会回答我的问题。 我发现那个帖子: http://blogs.msdn.com/b/alexj/archive/2009/04/15/tip-12-choosing-an-inheritance-strategy.aspx

默认情况下EF6使用 TPH ,不允许将列设置为NOT NULL。 请考虑每种类型的表(TPT)或每种混凝土类别(TPC)