Skip to content

Commit e43d86c

Browse files
committed
Put strin enum column back in string
1 parent f6c9803 commit e43d86c

4 files changed

Lines changed: 38 additions & 32 deletions

File tree

src/PhenX.EntityFrameworkCore.BulkInsert.Oracle/OracleDialectBuilder.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,7 @@ internal class OracleDialectBuilder : SqlDialectBuilder
1818

1919
public override string CreateTableCopySql(string tempTableName, TableMetadata tableInfo, IReadOnlyList<ColumnMetadata> columns)
2020
{
21-
var q = new StringBuilder();
22-
q.Append($"CREATE TABLE {tempTableName} (");
23-
24-
foreach (var column in columns)
25-
{
26-
q.Append($"{column.QuotedColumName} {column.StoreDefinition}");
27-
if (column != columns[^1])
28-
{
29-
q.Append(',');
30-
}
31-
q.AppendLine();
32-
}
33-
34-
q.AppendLine(")");
35-
36-
return q.ToString();
21+
return CreateTableCopySqlBase(tempTableName, columns);
3722
}
3823

3924
public override string BuildMoveDataSql<T>(

src/PhenX.EntityFrameworkCore.BulkInsert.SqlServer/SqlServerDialectBuilder.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,7 @@ internal class SqlServerDialectBuilder : SqlDialectBuilder
1818

1919
public override string CreateTableCopySql(string tempTableName, TableMetadata tableInfo, IReadOnlyList<ColumnMetadata> columns)
2020
{
21-
var q = new StringBuilder();
22-
q.Append($"CREATE TABLE {tempTableName} (");
23-
24-
foreach (var column in columns)
25-
{
26-
q.Append($"{column.QuotedColumName} {column.StoreDefinition}");
27-
if (column != columns[^1])
28-
{
29-
q.Append(',');
30-
}
31-
q.AppendLine();
32-
}
33-
34-
q.AppendLine(")");
35-
36-
return q.ToString();
21+
return CreateTableCopySqlBase(tempTableName, columns);
3722
}
3823

3924
protected override string Trim(string lhs) => $"TRIM({lhs})";

src/PhenX.EntityFrameworkCore.BulkInsert/Dialect/SqlDialectBuilder.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ internal abstract class SqlDialectBuilder
2929
/// </summary>
3030
protected virtual bool SupportsInsertIntoAlias => true;
3131

32+
protected static string CreateTableCopySqlBase(string tempTableName, IReadOnlyList<ColumnMetadata> columns)
33+
{
34+
var q = new StringBuilder();
35+
36+
q.Append($"CREATE TABLE {tempTableName} (");
37+
q.AppendJoin(",", columns, (sb, column) => sb.AppendLine($"{column.QuotedColumName} {column.StoreDefinition}"));
38+
q.AppendLine(")");
39+
40+
return q.ToString();
41+
}
42+
3243
public abstract string CreateTableCopySql(string tempNameName, TableMetadata tableInfo, IReadOnlyList<ColumnMetadata> columns);
3344

3445
/// <summary>

tests/PhenX.EntityFrameworkCore.BulkInsert.Tests/DbContext/TestDbContext.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
3838
{
3939
b.Property(x => x.Json).AsJsonString("jsonb");
4040
});
41+
42+
modelBuilder.Entity<TestEntity>(b =>
43+
{
44+
b.Property(x => x.StringEnumValue).HasColumnType("text");
45+
});
4146
}
4247
}
4348

@@ -51,6 +56,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
5156
{
5257
b.Property(x => x.Json).AsJsonString("json");
5358
});
59+
60+
modelBuilder.Entity<TestEntity>(b =>
61+
{
62+
b.Property(x => x.StringEnumValue).HasColumnType("text");
63+
});
5464
}
5565
}
5666

@@ -64,6 +74,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
6474
{
6575
b.Property(x => x.Json).AsJsonString(null);
6676
});
77+
78+
modelBuilder.Entity<TestEntity>(b =>
79+
{
80+
b.Property(x => x.StringEnumValue).HasColumnType("text");
81+
});
6782
}
6883
}
6984

@@ -77,6 +92,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
7792
{
7893
b.Property(x => x.Json).AsJsonString(null);
7994
});
95+
96+
modelBuilder.Entity<TestEntity>(b =>
97+
{
98+
b.Property(x => x.StringEnumValue).HasColumnType("text");
99+
});
80100
}
81101
}
82102

@@ -90,6 +110,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
90110
{
91111
b.Property(x => x.Json).AsJsonString(null);
92112
});
113+
114+
modelBuilder.Entity<TestEntity>(b =>
115+
{
116+
b.Property(x => x.StringEnumValue).HasColumnType("nvarchar2(255)");
117+
});
93118
}
94119
}
95120

0 commit comments

Comments
 (0)