private void Initialize( ColumnOperation columnOperation, IProperty property, Type clrType, bool isNullable, IEnumerable <IAnnotation> migrationsAnnotations, bool inline = false, IEntityType userDefinedType = null) { columnOperation.ClrType = clrType; columnOperation.ColumnType = userDefinedType != null?userDefinedType.GetTableName() : property.GetConfiguredColumnType(); columnOperation.MaxLength = property.GetMaxLength(); columnOperation.IsUnicode = property.IsUnicode(); columnOperation.IsFixedLength = property.IsFixedLength(); columnOperation.IsRowVersion = property.ClrType == typeof(byte[]) && property.IsConcurrencyToken && property.ValueGenerated == ValueGenerated.OnAddOrUpdate; columnOperation.IsNullable = isNullable; var defaultValue = userDefinedType != null ? null : GetDefaultValue(property); columnOperation.DefaultValue = (defaultValue == DBNull.Value ? null : defaultValue) ?? (inline || isNullable ? null : userDefinedType != null ? null : GetDefaultValue(columnOperation.ClrType)); columnOperation.DefaultValueSql = property.GetDefaultValueSql(); columnOperation.ComputedColumnSql = property.GetComputedColumnSql(); columnOperation.Comment = property.GetComment(); columnOperation.AddAnnotations(migrationsAnnotations); }
private void Initialize( ColumnOperation columnOperation, IProperty property, Type clrType, bool isNullable, IEnumerable <IAnnotation> migrationsAnnotations, bool inline = false, IEntityType userDefinedType = null) { var columnType = userDefinedType != null?userDefinedType.GetTableName() : property.GetConfiguredColumnType(); if (property.ClrType.IsList() && !CassandraTypeMappingSource.CLR_TYPE_MAPPINGS.ContainsKey(property.ClrType)) { Type genericType; if (clrType.IsGenericType) { genericType = clrType.GenericTypeArguments.First(); } else { genericType = clrType.GetElementType(); } if (!CassandraTypeMappingSource.CLR_TYPE_MAPPINGS.ContainsKey(genericType)) { var targetEntityType = property.DeclaringEntityType.GetRootType(); var et = targetEntityType.Model.FindEntityType(genericType); columnType = columnType.Replace(genericType.Name, et.GetTableName()); } } columnOperation.ClrType = clrType; columnOperation.ColumnType = columnType; columnOperation.MaxLength = property.GetMaxLength(); columnOperation.IsUnicode = property.IsUnicode(); columnOperation.IsFixedLength = property.IsFixedLength(); columnOperation.IsRowVersion = property.ClrType == typeof(byte[]) && property.IsConcurrencyToken && property.ValueGenerated == ValueGenerated.OnAddOrUpdate; columnOperation.IsNullable = isNullable; var defaultValue = userDefinedType != null ? null : GetDefaultValue(property); columnOperation.DefaultValue = (defaultValue == DBNull.Value ? null : defaultValue) ?? (inline || isNullable ? null : userDefinedType != null ? null : GetDefaultValue(columnOperation.ClrType)); columnOperation.DefaultValueSql = property.GetDefaultValueSql(); columnOperation.ComputedColumnSql = property.GetComputedColumnSql(); columnOperation.Comment = property.GetComment(); columnOperation.AddAnnotations(migrationsAnnotations); }