如何使用CodeFirst设置属性的默认值而不编辑生成的迁移?

时间:2016-09-10 23:57:53

标签: c# entity-framework ef-code-first

我想为POCO类中的某些属性设置默认值。但是我宁愿不手动更改生成的迁移。

OnModelCreating中是否有可以为这些属性设置一些默认值的注释或命令?

1 个答案:

答案 0 :(得分:1)

使用EF6,可以在FluentAPI的OnModelCreating方法中配置属性值。 假设我有User类,我希望Country属性总是USA。

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Country { get; set; }
}

public class Context : DbContext
{
    public DbSet<User> Users {get; set;}

    protected override void OnModelCreating(DbModelBuilder builder)
    {
        builder.Properties().Where(p => p.Name == "Country").Configure(x => x.ClrPropertyInfo.SetValue(currentInstanceOfUser, "USA"));
    }
}

您需要在上面的代码中传递'currentInstanceOfUser'的值。我尝试了一些方法,但没有成功。