Пример #1
0
        protected virtual bool MatchColumnNames([NotNull] IProperty source, [NotNull] IProperty target)
        {
            Check.NotNull(source, "source");
            Check.NotNull(target, "target");

            return(ExtensionProvider.Extensions(source).Column == ExtensionProvider.Extensions(target).Column);
        }
Пример #2
0
        protected virtual bool MatchIndexNames([NotNull] IIndex source, [NotNull] IIndex target)
        {
            Check.NotNull(source, "source");
            Check.NotNull(target, "target");

            return(ExtensionProvider.Extensions(source).Name == ExtensionProvider.Extensions(target).Name);
        }
Пример #3
0
        protected virtual bool MatchTableSchemas([NotNull] IEntityType source, [NotNull] IEntityType target)
        {
            Check.NotNull(source, "source");
            Check.NotNull(target, "target");

            return(ExtensionProvider.Extensions(source).Schema == ExtensionProvider.Extensions(target).Schema);
        }
Пример #4
0
        protected virtual string ColumnType(IProperty property)
        {
            var extensions = ExtensionProvider.Extensions(property);

            return
                (TypeMapper.GetTypeMapping(
                     extensions.ColumnType,
                     extensions.Column,
                     property.PropertyType,
                     property.IsKey() || property.IsForeignKey(),
                     property.IsConcurrencyToken)
                 .StoreTypeName);
        }
Пример #5
0
        public virtual AddDefaultConstraintOperation AddDefaultConstraintOperation([NotNull] IProperty target)
        {
            Check.NotNull(target, "target");

            var extensions = ExtensionProvider.Extensions(target);

            return
                (new AddDefaultConstraintOperation(
                     NameBuilder.SchemaQualifiedTableName(target.EntityType),
                     NameBuilder.ColumnName(target),
                     extensions.DefaultValue,
                     extensions.DefaultExpression));
        }
Пример #6
0
        public virtual Column Column([NotNull] IProperty property)
        {
            Check.NotNull(property, "property");

            var extensions = ExtensionProvider.Extensions(property);

            return
                (new Column(NameBuilder.ColumnName(property), property.PropertyType)
            {
                DataType = extensions.ColumnType,
                IsNullable = property.IsNullable,
                DefaultValue = extensions.DefaultValue,
                DefaultSql = extensions.DefaultExpression,
                IsComputed = property.IsStoreComputed,
                IsTimestamp = property.IsConcurrencyToken && property.PropertyType == typeof(byte[]),
                MaxLength = property.MaxLength > 0 ? property.MaxLength : (int?)null
            });
        }
Пример #7
0
        protected virtual bool EquivalentColumns([NotNull] IProperty source, [NotNull] IProperty target)
        {
            Check.NotNull(source, "source");
            Check.NotNull(target, "target");

            var sourceExtensions = ExtensionProvider.Extensions(source);
            var targetExtensions = ExtensionProvider.Extensions(target);

            return
                (source.PropertyType == target.PropertyType &&
                 ColumnType(source) == ColumnType(target) &&
                 sourceExtensions.DefaultValue == targetExtensions.DefaultValue &&
                 sourceExtensions.DefaultExpression == targetExtensions.DefaultExpression &&
                 source.IsNullable == target.IsNullable &&
                 source.GenerateValueOnAdd == target.GenerateValueOnAdd &&
                 source.IsStoreComputed == target.IsStoreComputed &&
                 source.IsConcurrencyToken == target.IsConcurrencyToken &&
                 source.MaxLength == target.MaxLength);
        }
Пример #8
0
 protected override bool EquivalentIndexes(IIndex source, IIndex target, IDictionary<IProperty, IProperty> columnMap)
 {
     return
         base.EquivalentIndexes(source, target, columnMap)
         && ExtensionProvider.Extensions(source).IsClustered == ExtensionProvider.Extensions(target).IsClustered;
 }
 protected override bool EquivalentPrimaryKeys(IKey source, IKey target, IDictionary <IProperty, IProperty> columnMap)
 {
     return
         (base.EquivalentPrimaryKeys(source, target, columnMap) &&
          ExtensionProvider.Extensions(source).IsClustered == ExtensionProvider.Extensions(target).IsClustered);
 }