Default value in mvc model using data annotation

Try this - set the default value in the constructor:

public class YOURMODEL
{
    public int MyId { get; set; }  

    public YOURMODEL()
    { 
        MyId = 1;       
    }
}

Later addition by other user: Since C# 6.0 (2015) this simpler syntax has been allowed:

public class YOURMODEL
{
    public int MyId { get; set; } = 1;
}

Use [DefaultValue(false)].

(Reference)


The constructor method is correct of course (as per @Nilesh) but this solution doesn't address any legacy data you might have already created in your database.

You can also update your legacy data by generating the migration and then adjusting the AddColumn method thusly...

AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false));

changes to:

AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false, defaultValue: 1));

Note, this will also create a database trigger that would automatically update the default value on INSERT so you don't technically need the constructor method from the database perspective but setting the value using the constructor is still the best practice.