Skip to content

Commit 0e1ee05

Browse files
committed
#736 Better Postgress types support
1 parent fbb3a8a commit 0e1ee05

File tree

10 files changed

+38
-20
lines changed

10 files changed

+38
-20
lines changed

EntityFramework.Reverse.POCO.Generator/EF.Reverse.POCO.v3.ttinclude

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,24 @@
771771
default:
772772
return "SqlParameter";
773773
}
774+
}
775+
776+
public static string SqlParameterValue()
777+
{
778+
switch (DatabaseType)
779+
{
780+
case DatabaseType.PostgreSQL:
781+
return "NpgsqlValue";
782+
783+
case DatabaseType.MySql:
784+
return "Value";
785+
786+
case DatabaseType.Oracle:
787+
return "Value";
788+
789+
default:
790+
return "SqlValue";
791+
}
774792
}
775793

776794
public static string Root;
@@ -3727,6 +3745,7 @@
37273745
UseDatabaseProvider = Settings.DatabaseProvider(),
37283746
UseLazyLoadingProxies = Settings.UseLazyLoading && Settings.IsEfCore3Plus(),
37293747
SqlParameter = Settings.SqlParameter(),
3748+
SqlParameterValue = Settings.SqlParameterValue(),
37303749
Triggers = _tables.Where(x => !string.IsNullOrEmpty(x.Table.TriggerName))
37313750
.Select(x => new Trigger { TableName = x.Table.NameHumanCase, TriggerName = x.Table.TriggerName }).ToList(),
37323751
MemoryOptimisedTables = _tables.Where(x => x.Table.IsMemoryOptimised).Select(x => x.Table.NameHumanCase).ToList()
@@ -7202,8 +7221,7 @@
72027221
{ "bigint", "long" },
72037222
{ "bigserial", "long" },
72047223
{ "bit varying", "BitArray" },
7205-
{ "bit(1)", "bool" },
7206-
{ "bit(n)", "BitArray" },
7224+
{ "bit", "BitArray" },
72077225
{ "bool", "bool" },
72087226
{ "boolean", "bool" },
72097227
{ "box", "NpgsqlBox" },
@@ -16891,6 +16909,7 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
1689116909
public string DefaultSchema { get; set; }
1689216910
public string UseDatabaseProvider { get; set; }
1689316911
public string SqlParameter { get; set; }
16912+
public string SqlParameterValue { get; set; }
1689416913
public bool UseLazyLoadingProxies { get; set; }
1689516914
public bool hasTriggers { get; set; }
1689616915
public List<Trigger> Triggers { get; set; }
@@ -17366,7 +17385,7 @@ using {{this}};{{#newline}}
1736617385

1736717386
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
1736817387
{{{#newline}}
17369-
var sqlValue = param.SqlValue;{{#newline}}
17388+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
1737017389
var nullableValue = sqlValue as INullable;{{#newline}}
1737117390
if (nullableValue != null){{#newline}}
1737217391
return nullableValue.IsNull;{{#newline}}
@@ -18672,7 +18691,7 @@ using {{this}};{{#newline}}
1867218691

1867318692
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
1867418693
{{{#newline}}
18675-
var sqlValue = param.SqlValue;{{#newline}}
18694+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
1867618695
var nullableValue = sqlValue as INullable;{{#newline}}
1867718696
if (nullableValue != null){{#newline}}
1867818697
return nullableValue.IsNull;{{#newline}}
@@ -20179,7 +20198,7 @@ using {{this}};{{#newline}}
2017920198

2018020199
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
2018120200
{{{#newline}}
20182-
var sqlValue = param.SqlValue;{{#newline}}
20201+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
2018320202
var nullableValue = sqlValue as INullable;{{#newline}}
2018420203
if (nullableValue != null){{#newline}}
2018520204
return nullableValue.IsNull;{{#newline}}
@@ -21766,7 +21785,7 @@ using {{this}};{{#newline}}
2176621785

2176721786
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
2176821787
{{{#newline}}
21769-
var sqlValue = param.SqlValue;{{#newline}}
21788+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
2177021789
var nullableValue = sqlValue as INullable;{{#newline}}
2177121790
if (nullableValue != null){{#newline}}
2177221791
return nullableValue.IsNull;{{#newline}}
@@ -23398,7 +23417,7 @@ using {{this}};{{#newline}}
2339823417

2339923418
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
2340023419
{{{#newline}}
23401-
var sqlValue = param.SqlValue;{{#newline}}
23420+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
2340223421
var nullableValue = sqlValue as INullable;{{#newline}}
2340323422
if (nullableValue != null){{#newline}}
2340423423
return nullableValue.IsNull;{{#newline}}
@@ -25032,7 +25051,7 @@ using {{this}};{{#newline}}
2503225051

2503325052
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
2503425053
{{{#newline}}
25035-
var sqlValue = param.SqlValue;{{#newline}}
25054+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
2503625055
var nullableValue = sqlValue as INullable;{{#newline}}
2503725056
if (nullableValue != null){{#newline}}
2503825057
return nullableValue.IsNull;{{#newline}}

Generator.Tests.Integration/TestComparison/EfrpgTest_PostgreSQL_Ef6_FkLegacy.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,8 @@ object IDbAsyncEnumerator.Current
496496
public class Allcolumntype
497497
{
498498
public long Bigint { get; set; } // bigint (Primary key)
499-
public string Bit1 { get; set; } // bit_1 (length: 1)
500-
public string Bit8 { get; set; } // bit_8 (length: 8)
499+
public bool? Bit1 { get; set; } // bit_1 (length: 1)
500+
public BitArray? Bit8 { get; set; } // bit_8 (length: 8)
501501
public bool? Boolean { get; set; } // boolean
502502
public NpgsqlBox? Box { get; set; } // box
503503
public byte[] Bytea { get; set; } // bytea

Generator.Tests.Integration/TestComparison/EfrpgTest_PostgreSQL_EfCore6_FkLegacy.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -824,8 +824,8 @@ public void Dispose() { }
824824
public class Allcolumntype
825825
{
826826
public long Bigint { get; set; } // bigint (Primary key)
827-
public string Bit1 { get; set; } // bit_1 (length: 1)
828-
public string Bit8 { get; set; } // bit_8 (length: 8)
827+
public bool? Bit1 { get; set; } // bit_1 (length: 1)
828+
public BitArray? Bit8 { get; set; } // bit_8 (length: 8)
829829
public bool? Boolean { get; set; } // boolean
830830
public NpgsqlBox? Box { get; set; } // box
831831
public byte[] Bytea { get; set; } // bytea

Generator/LanguageMapping/PostgresToCSharp.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ public Dictionary<string, string> GetMapping()
1313
{ "bigint", "long" },
1414
{ "bigserial", "long" },
1515
{ "bit varying", "BitArray" },
16-
{ "bit(1)", "bool" },
17-
{ "bit(n)", "BitArray" },
16+
{ "bit", "BitArray" },
1817
{ "bool", "bool" },
1918
{ "boolean", "bool" },
2019
{ "box", "NpgsqlBox" },

_File based templates/Templates.EF6/DatabaseContext.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787

8888
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
8989
{{{#newline}}
90-
var sqlValue = param.SqlValue;{{#newline}}
90+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
9191
var nullableValue = sqlValue as INullable;{{#newline}}
9292
if (nullableValue != null){{#newline}}
9393
return nullableValue.IsNull;{{#newline}}

_File based templates/Templates.EFCore2/DatabaseContext.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
6767
{{{#newline}}
68-
var sqlValue = param.SqlValue;{{#newline}}
68+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
6969
var nullableValue = sqlValue as INullable;{{#newline}}
7070
if (nullableValue != null){{#newline}}
7171
return nullableValue.IsNull;{{#newline}}

_File based templates/Templates.EFCore3/DatabaseContext.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
6767
{{{#newline}}
68-
var sqlValue = param.SqlValue;{{#newline}}
68+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
6969
var nullableValue = sqlValue as INullable;{{#newline}}
7070
if (nullableValue != null){{#newline}}
7171
return nullableValue.IsNull;{{#newline}}

_File based templates/Templates.EFCore5/DatabaseContext.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
6767
{{{#newline}}
68-
var sqlValue = param.SqlValue;{{#newline}}
68+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
6969
var nullableValue = sqlValue as INullable;{{#newline}}
7070
if (nullableValue != null){{#newline}}
7171
return nullableValue.IsNull;{{#newline}}

_File based templates/Templates.EFCore6/DatabaseContext.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
6767
{{{#newline}}
68-
var sqlValue = param.SqlValue;{{#newline}}
68+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
6969
var nullableValue = sqlValue as INullable;{{#newline}}
7070
if (nullableValue != null){{#newline}}
7171
return nullableValue.IsNull;{{#newline}}

_File based templates/Templates.EFCore7/DatabaseContext.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666
public bool IsSqlParameterNull({{SqlParameter}} param){{#newline}}
6767
{{{#newline}}
68-
var sqlValue = param.SqlValue;{{#newline}}
68+
var sqlValue = param.{{SqlParameterValue}};{{#newline}}
6969
var nullableValue = sqlValue as INullable;{{#newline}}
7070
if (nullableValue != null){{#newline}}
7171
return nullableValue.IsNull;{{#newline}}

0 commit comments

Comments
 (0)