private StorageTypeInfo CreateType(Type type, int?length, int?precision, int?scale)
        {
            var sqlValueType = driver.MapValueType(type, length, precision, scale);

            return(new StorageTypeInfo(
                       driver.MapSqlType(sqlValueType.Type), sqlValueType, sqlValueType.Length, sqlValueType.Precision, sqlValueType.Scale));
        }
Ejemplo n.º 2
0
        private void CreateGeneratorTable(Schema schema, StorageSequenceInfo sequenceInfo, string name)
        {
            var sequenceTable = schema.CreateTable(name);
            var idColumn      = sequenceTable.CreateColumn(WellKnown.GeneratorColumnName,
                                                           (SqlValueType)sequenceInfo.Type.NativeType);

            idColumn.SequenceDescriptor =
                new SequenceDescriptor(
                    idColumn,
                    sequenceInfo.Current ?? sequenceInfo.Seed,
                    sequenceInfo.Increment);
            sequenceTable.CreatePrimaryKey(string.Format("PK_{0}", sequenceInfo.Name), idColumn);
            if (!provider.Supports(ProviderFeatures.InsertDefaultValues))
            {
                var fakeColumn = sequenceTable.CreateColumn(
                    WellKnown.GeneratorFakeColumnName, driver.MapValueType(WellKnownTypes.Int32));
                fakeColumn.IsNullable = true;
            }
        }