Пример #1
0
        private void VisitComputedValue(PropertyBuilder propertyBuilder, ColumnModel column)
        {
            if (column.ComputedValue != null)
            {
                propertyBuilder.Metadata.Relational().ComputedColumnSql = null;

                var computedExpression = ConvertSqlServerDefaultValue(column.ComputedValue);
                if (computedExpression != null)
                {
                    if (!(computedExpression == "NULL" &&
                          propertyBuilder.Metadata.ClrType.IsNullableType()))
                    {
                        propertyBuilder.HasComputedColumnSql(computedExpression);
                    }
                    else
                    {
                        ((Property)propertyBuilder.Metadata).SetValueGenerated(null, ConfigurationSource.Explicit);
                    }
                }
                else
                {
                    Logger.LogWarning(
                        SqlServerDesignEventId.CannotInterpretComputedValueWarning,
                        () => SqlServerDesignStrings.CannotInterpretComputedValue(
                            column.DisplayName,
                            column.ComputedValue,
                            propertyBuilder.Metadata.Name,
                            propertyBuilder.Metadata.DeclaringEntityType.DisplayName()));
                }
            }
        }