Search code examples
c#.netentity-frameworkef-code-firstentity-framework-6

How can set a default value constraint with Entity Framework 6 Code First?


In a legacy app, most string properties can't be null and need to have a default value of string.empty.

I know it's possible to do this with migrations, but I'm looking for a way to do this using the fluent configuration interface:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Properties<string>().Configure(c =>
        {
            c.HasMaxLength(255);

            if (!c.ClrPropertyInfo.IsDefined(typeof (NullableAttribute), false))
            {
                c.IsRequired();
                // I want to set a default value (string.empty) here.
            }
    }

Is there any way to do this or I'm doomed to initialize all strings in the entity constructors?


Solution

  • Now the answer is Yes:

    AddColumn("[table name]", 
              "[column name]", 
              c => c.Boolean(nullable: false, defaultValue: false));