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)); }
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; } }