private static IHistoryRepository CreateHistoryRepository(string schema = null) { var annotationsProvider = new SqlServerAnnotationProvider(); var sqlGenerator = new SqlServerSqlGenerationHelper(); var typeMapper = new SqlServerTypeMapper(); var commandBuilderFactory = new RelationalCommandBuilderFactory( new FakeSensitiveDataLogger<RelationalCommandBuilderFactory>(), new DiagnosticListener("Fake"), typeMapper); return new SqlServerHistoryRepository( Mock.Of<IRelationalDatabaseCreator>(), Mock.Of<IRawSqlCommandBuilder>(), Mock.Of<ISqlServerConnection>(), new DbContextOptions<DbContext>( new Dictionary<Type, IDbContextOptionsExtension> { { typeof(SqlServerOptionsExtension), new SqlServerOptionsExtension { MigrationsHistoryTableSchema = schema } } }), new MigrationsModelDiffer( new SqlServerTypeMapper(), annotationsProvider, new SqlServerMigrationsAnnotationProvider()), new SqlServerMigrationsSqlGenerator( commandBuilderFactory, new SqlServerSqlGenerationHelper(), typeMapper, annotationsProvider), annotationsProvider, sqlGenerator); }
public void Does_non_key_SQL_Server_required_rowversion_mapping() { var property = CreateEntityType().AddProperty("MyProp", typeof(byte[])); property.IsConcurrencyToken = true; property.ValueGenerated = ValueGenerated.OnAddOrUpdate; property.IsNullable = false; var typeMapping = new SqlServerTypeMapper().GetMapping(property); Assert.Equal(DbType.Binary, typeMapping.DbType); Assert.Equal("rowversion", typeMapping.StoreType); Assert.Equal(8, typeMapping.Size); Assert.Equal(8, typeMapping.CreateParameter(new TestCommand(), "Name", new byte[8]).Size); }
public void Can_map_by_type_name(string typeName, Type clrType, int? size, bool unicode) { var mapping = new SqlServerTypeMapper().GetMapping(typeName); Assert.Equal(clrType, mapping.ClrType); Assert.Equal(size, mapping.Size); Assert.Equal(unicode, mapping.IsUnicode); Assert.Equal(typeName.ToLowerInvariant(), mapping.StoreType); }
public void Does_indexed_column_SQL_Server_binary_mapping() { var entityType = CreateEntityType(); var property = entityType.AddProperty("MyProp", typeof(byte[])); entityType.AddIndex(property); var typeMapping = new SqlServerTypeMapper().GetMapping(property); Assert.Equal(DbType.Binary, typeMapping.DbType); Assert.Equal("varbinary(900)", typeMapping.StoreType); Assert.Equal(900, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size); }
public void Does_required_foreign_key_SQL_Server_binary_mapping() { var property = CreateEntityType().AddProperty("MyProp", typeof(byte[])); property.IsNullable = false; var fkProperty = property.DeclaringEntityType.AddProperty("FK", typeof(byte[])); var pk = property.DeclaringEntityType.SetPrimaryKey(property); property.DeclaringEntityType.AddForeignKey(fkProperty, pk, property.DeclaringEntityType); fkProperty.IsNullable = false; var typeMapping = new SqlServerTypeMapper().GetMapping(fkProperty); Assert.Equal(DbType.Binary, typeMapping.DbType); Assert.Equal("varbinary(900)", typeMapping.StoreType); Assert.Equal(900, typeMapping.CreateParameter(new TestCommand(), "Name", new byte[3]).Size); }
public void Does_non_key_SQL_Server_fixed_length_binary_mapping() { var property = CreateEntityType().AddProperty("MyBinaryProp", typeof(byte[])); property.Relational().ColumnType = "binary(100)"; var typeMapping = new SqlServerTypeMapper().GetMapping(property); Assert.Equal(DbType.Binary, typeMapping.DbType); Assert.Equal("binary(100)", typeMapping.StoreType); }
public void Does_indexed_column_SQL_Server_string_mapping() { var entityType = CreateEntityType(); var property = entityType.AddProperty("MyProp", typeof(string)); entityType.AddIndex(property); var typeMapping = new SqlServerTypeMapper().GetMapping(property); Assert.Null(typeMapping.DbType); Assert.Equal("nvarchar(450)", typeMapping.StoreType); Assert.Equal(450, typeMapping.Size); Assert.True(typeMapping.IsUnicode); Assert.Equal(450, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size); }
public void Does_required_foreign_key_SQL_Server_string_mapping() { var property = CreateEntityType().AddProperty("MyProp", typeof(string)); property.IsNullable = false; var fkProperty = property.DeclaringEntityType.AddProperty("FK", typeof(string)); var pk = property.DeclaringEntityType.SetPrimaryKey(property); property.DeclaringEntityType.AddForeignKey(fkProperty, pk, property.DeclaringEntityType); fkProperty.IsNullable = false; var typeMapping = new SqlServerTypeMapper().GetMapping(fkProperty); Assert.Null(typeMapping.DbType); Assert.Equal("nvarchar(450)", typeMapping.StoreType); Assert.Equal(450, typeMapping.Size); Assert.True(typeMapping.IsUnicode); Assert.Equal(450, typeMapping.CreateParameter(new TestCommand(), "Name", "Value").Size); }