623623 }
624624 }
625625
626+ public static string DatabaseProvider()
627+ {
628+ switch (DatabaseType)
629+ {
630+ case DatabaseType.PostgreSQL:
631+ return "UseNpgsql";
632+
633+ case DatabaseType.MySql:
634+ return "UseMySql";
635+
636+ case DatabaseType.Oracle:
637+ return "UseOracle";
638+
639+ default:
640+ return "UseSqlServer";
641+ }
642+ }
643+
644+ public static string SqlParameter()
645+ {
646+ switch (DatabaseType)
647+ {
648+ case DatabaseType.PostgreSQL:
649+ return "NpgsqlParameter";
650+
651+ case DatabaseType.MySql:
652+ return "MySqlParameter";
653+
654+ case DatabaseType.Oracle:
655+ return "OracleParameter";
656+
657+ default:
658+ return "SqlParameter";
659+ }
660+ }
661+
626662 public static string Root;
627663 public static string TemplateFile;
628664 public static int FilterCount;
33783414 }
33793415
33803416 var isEfCore3Plus = Settings.IsEfCore3Plus();
3381- var isEfCore5Plus = Settings.IsEfCore5Plus();
33823417
33833418 var data = new ContextModel
33843419 {
34213456 OnConfigurationUsesConfiguration = Settings.OnConfiguration == OnConfiguration.Configuration,
34223457 OnConfigurationUsesConnectionString = Settings.OnConfiguration == OnConfiguration.ConnectionString,
34233458 DefaultSchema = Settings.DefaultSchema,
3459+ UseDatabaseProvider = Settings.DatabaseProvider(),
3460+ SqlParameter = Settings.SqlParameter(),
34243461 };
34253462
34263463 var co = new CodeOutput(string.Empty, filename, "Database context", _globalUsings);
@@ -15413,7 +15450,7 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
1541315450 var isGeography = p.PropertyType == "DbGeography";
1541415451
1541515452 sb.AppendLine(
15416- string.Format(" var {0} = new SqlParameter ", WriteStoredProcSqlParameterName(p))
15453+ string.Format(" var {0} = new {1} ", WriteStoredProcSqlParameterName(p), Settings.SqlParameter( ))
1541715454 + string.Format(" {{ ParameterName = \"{0}\", ", p.Name)
1541815455 + (isGeography ? "UdtTypeName = \"geography\"" : string.Format("SqlDbType = SqlDbType.{0}", p.SqlDbType))
1541915456 + ", Direction = ParameterDirection."
@@ -15440,8 +15477,9 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
1544015477
1544115478 if (includeProcResult && ReturnModels.Count < 2)
1544215479 {
15443- sb.AppendLine(
15444- " var procResultParam = new SqlParameter { ParameterName = \"@procResult\", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output };");
15480+ sb.Append(" var procResultParam = new ");
15481+ sb.Append(Settings.SqlParameter());
15482+ sb.AppendLine(" { ParameterName = \"@procResult\", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output };");
1544515483 }
1544615484
1544715485 return sb.ToString();
@@ -16106,6 +16144,8 @@ SELECT SERVERPROPERTY('Edition') AS Edition,
1610616144 public bool OnConfigurationUsesConfiguration { get; set; }
1610716145 public bool OnConfigurationUsesConnectionString { get; set; }
1610816146 public string DefaultSchema { get; set; }
16147+ public string UseDatabaseProvider { get; set; }
16148+ public string SqlParameter { get; set; }
1610916149 }
1611016150 public class FactoryModel
1611116151 {
@@ -16560,7 +16600,7 @@ using {{this}};{{#newline}}
1656016600{{#newline}}
1656116601
1656216602
16563- public bool IsSqlParameterNull(SqlParameter param){{#newline}}
16603+ public bool IsSqlParameterNull({{ SqlParameter}} param){{#newline}}
1656416604 {{{#newline}}
1656516605 var sqlValue = param.SqlValue;{{#newline}}
1656616606 var nullableValue = sqlValue as INullable;{{#newline}}
@@ -17832,7 +17872,7 @@ using {{this}};{{#newline}}
1783217872 {{{#newline}}
1783317873 if (!optionsBuilder.IsConfigured && _configuration != null){{#newline}}
1783417874 {{{#newline}}
17835- optionsBuilder.UseSqlServer (_configuration.GetConnectionString(@""{{ConnectionStringName}}""){{ConnectionStringActions}});{{#newline}}
17875+ optionsBuilder.{{UseDatabaseProvider}} (_configuration.GetConnectionString(@""{{ConnectionStringName}}""){{ConnectionStringActions}});{{#newline}}
1783617876 }{{#newline}}
1783717877 }{{#newline}}{{#newline}}
1783817878{{/if}}
@@ -17842,13 +17882,13 @@ using {{this}};{{#newline}}
1784217882 {{{#newline}}
1784317883 if (!optionsBuilder.IsConfigured){{#newline}}
1784417884 {{{#newline}}
17845- optionsBuilder.UseSqlServer (@""{{ConnectionString}}""{{ConnectionStringActions}});{{#newline}}
17885+ optionsBuilder.{{UseDatabaseProvider}} (@""{{ConnectionString}}""{{ConnectionStringActions}});{{#newline}}
1784617886 }{{#newline}}
1784717887 }{{#newline}}{{#newline}}
1784817888{{/if}}
1784917889
1785017890
17851- public bool IsSqlParameterNull(SqlParameter param){{#newline}}
17891+ public bool IsSqlParameterNull({{ SqlParameter}} param){{#newline}}
1785217892 {{{#newline}}
1785317893 var sqlValue = param.SqlValue;{{#newline}}
1785417894 var nullableValue = sqlValue as INullable;{{#newline}}
@@ -19109,12 +19149,26 @@ using {{this}};{{#newline}}
1910919149 {
1911019150 "System",
1911119151 "System.Data",
19112- "Microsoft.Data.SqlClient",
1911319152 "System.Data.SqlTypes",
1911419153 "Microsoft.EntityFrameworkCore",
1911519154 "System.Threading.Tasks",
1911619155 "System.Threading"
1911719156 };
19157+
19158+ switch(Settings.DatabaseType)
19159+ {
19160+ case DatabaseType.SqlServer:
19161+ case DatabaseType.SqlCe:
19162+ case DatabaseType.Plugin:
19163+ usings.Add("Microsoft.Data.SqlClient");
19164+ break;
19165+ case DatabaseType.PostgreSQL:
19166+ break;
19167+ case DatabaseType.MySql:
19168+ break;
19169+ case DatabaseType.Oracle:
19170+ break;
19171+ }
1911819172
1911919173 if (Settings.IncludeCodeGeneratedAttribute)
1912019174 usings.Add("System.CodeDom.Compiler");
@@ -19185,7 +19239,7 @@ using {{this}};{{#newline}}
1918519239 {{{#newline}}
1918619240 if (!optionsBuilder.IsConfigured && _configuration != null){{#newline}}
1918719241 {{{#newline}}
19188- optionsBuilder.UseSqlServer (_configuration.GetConnectionString(@""{{ConnectionStringName}}""){{ConnectionStringActions}});{{#newline}}
19242+ optionsBuilder.{{UseDatabaseProvider}} (_configuration.GetConnectionString(@""{{ConnectionStringName}}""){{ConnectionStringActions}});{{#newline}}
1918919243 }{{#newline}}
1919019244 }{{#newline}}{{#newline}}
1919119245{{/if}}
@@ -19195,13 +19249,13 @@ using {{this}};{{#newline}}
1919519249 {{{#newline}}
1919619250 if (!optionsBuilder.IsConfigured){{#newline}}
1919719251 {{{#newline}}
19198- optionsBuilder.UseSqlServer (@""{{ConnectionString}}""{{ConnectionStringActions}});{{#newline}}
19252+ optionsBuilder.{{UseDatabaseProvider}} (@""{{ConnectionString}}""{{ConnectionStringActions}});{{#newline}}
1919919253 }{{#newline}}
1920019254 }{{#newline}}{{#newline}}
1920119255{{/if}}
1920219256
1920319257
19204- public bool IsSqlParameterNull(SqlParameter param){{#newline}}
19258+ public bool IsSqlParameterNull({{ SqlParameter}} param){{#newline}}
1920519259 {{{#newline}}
1920619260 var sqlValue = param.SqlValue;{{#newline}}
1920719261 var nullableValue = sqlValue as INullable;{{#newline}}
@@ -20572,13 +20626,27 @@ using {{this}};{{#newline}}
2057220626 {
2057320627 "System",
2057420628 "System.Data",
20575- "Microsoft.Data.SqlClient",
2057620629 "System.Data.SqlTypes",
2057720630 "Microsoft.EntityFrameworkCore",
2057820631 "System.Threading.Tasks",
2057920632 "System.Threading"
2058020633 };
2058120634
20635+ switch (Settings.DatabaseType)
20636+ {
20637+ case DatabaseType.SqlServer:
20638+ case DatabaseType.SqlCe:
20639+ case DatabaseType.Plugin:
20640+ usings.Add("Microsoft.Data.SqlClient");
20641+ break;
20642+ case DatabaseType.PostgreSQL:
20643+ break;
20644+ case DatabaseType.MySql:
20645+ break;
20646+ case DatabaseType.Oracle:
20647+ break;
20648+ }
20649+
2058220650 if (Settings.IncludeCodeGeneratedAttribute)
2058320651 usings.Add("System.CodeDom.Compiler");
2058420652
@@ -20648,7 +20716,7 @@ using {{this}};{{#newline}}
2064820716 {{{#newline}}
2064920717 if (!optionsBuilder.IsConfigured && _configuration != null){{#newline}}
2065020718 {{{#newline}}
20651- optionsBuilder.UseSqlServer (_configuration.GetConnectionString(@""{{ConnectionStringName}}""){{ConnectionStringActions}});{{#newline}}
20719+ optionsBuilder.{{UseDatabaseProvider}} (_configuration.GetConnectionString(@""{{ConnectionStringName}}""){{ConnectionStringActions}});{{#newline}}
2065220720 }{{#newline}}
2065320721 }{{#newline}}{{#newline}}
2065420722{{/if}}
@@ -20658,13 +20726,13 @@ using {{this}};{{#newline}}
2065820726 {{{#newline}}
2065920727 if (!optionsBuilder.IsConfigured){{#newline}}
2066020728 {{{#newline}}
20661- optionsBuilder.UseSqlServer (@""{{ConnectionString}}""{{ConnectionStringActions}});{{#newline}}
20729+ optionsBuilder.{{UseDatabaseProvider}} (@""{{ConnectionString}}""{{ConnectionStringActions}});{{#newline}}
2066220730 }{{#newline}}
2066320731 }{{#newline}}{{#newline}}
2066420732{{/if}}
2066520733
2066620734
20667- public bool IsSqlParameterNull(SqlParameter param){{#newline}}
20735+ public bool IsSqlParameterNull({{ SqlParameter}} param){{#newline}}
2066820736 {{{#newline}}
2066920737 var sqlValue = param.SqlValue;{{#newline}}
2067020738 var nullableValue = sqlValue as INullable;{{#newline}}
0 commit comments