/// <summary> /// Set DefaultValueSql for sepecific property name and type /// </summary> /// <param name="modelBuilder"></param> /// <param name="propertyName">Name of property wants to set DefaultValueSql for</param> /// <param name="propertyType">Type of property wants to set DefaultValueSql for </param> /// <param name="defaultValueSql">DefaultValueSql like "NEWSEQUENTIALID()"</param> public static void AddDefaultValueSqlConvention(this ModelBuilder modelBuilder, string propertyName, Type propertyType, string defaultValueSql) { foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes()) { IMutableProperty property = entityType.GetProperties().SingleOrDefault(p => p.Name.Equals(propertyName, StringComparison.OrdinalIgnoreCase)); if (property != null && property.ClrType == propertyType) { property.SetDefaultValue(defaultValueSql); } } }
protected virtual void ConfigureProperty(IMutableProperty property, string configuration, string value) { switch (configuration) { case "DefaultValue": property.SetDefaultValue(int.Parse(value)); break; case "DefaultValueSql": property.SetDefaultValueSql(value); break; case "ComputedColumnSql": property.SetComputedColumnSql(value); break; case "SqlServerValueGenerationStrategy": property.SetValueGenerationStrategy(SqlServerValueGenerationStrategy.IdentityColumn); break; default: throw new NotImplementedException(); } }