From e8c0224a03624313a12039728e7186e34c7f13b1 Mon Sep 17 00:00:00 2001 From: "grzegorz.russek" Date: Fri, 2 Sep 2022 07:53:41 +0000 Subject: [PATCH] --- AmalgamationTool/DynamORM.Amalgamation.cs | 6 +- DynamORM/DynamicDatabase.cs | 72 +++++++++++------------ DynamORM/DynamicProcedureInvoker.cs | 4 +- Tester/Program.cs | 1 + 4 files changed, 42 insertions(+), 41 deletions(-) diff --git a/AmalgamationTool/DynamORM.Amalgamation.cs b/AmalgamationTool/DynamORM.Amalgamation.cs index d6ec2b2..0a8c80b 100644 --- a/AmalgamationTool/DynamORM.Amalgamation.cs +++ b/AmalgamationTool/DynamORM.Amalgamation.cs @@ -2916,7 +2916,7 @@ namespace DynamORM /// Command containing query to execute. /// List of objects . /// If your database doesn't get those values in upper case (like most of the databases) you should override this method. - protected virtual IEnumerable ReadSchema(IDbCommand cmd) + public virtual IEnumerable ReadSchema(IDbCommand cmd) { DataTable st = null; @@ -5399,12 +5399,12 @@ namespace DynamORM cmd.AddParameter( _db.GetParameterName(paramName), dcv.ParameterDirection, ds.Type, ds.Size, ds.Precision, ds.Scale, - isOut ? DBNull.Value : arg); + isOut ? DBNull.Value : dcv.Value); } else cmd.AddParameter( _db.GetParameterName(paramName), dcv.ParameterDirection, - arg == null ? DbType.String : arg.GetType().ToDbType(), 0, isOut ? DBNull.Value : arg); + arg == null ? DbType.String : arg.GetType().ToDbType(), 0, isOut ? DBNull.Value : dcv.Value); } else { diff --git a/DynamORM/DynamicDatabase.cs b/DynamORM/DynamicDatabase.cs index 24a3158..010fb85 100644 --- a/DynamORM/DynamicDatabase.cs +++ b/DynamORM/DynamicDatabase.cs @@ -252,9 +252,9 @@ namespace DynamORM #endif } -#endregion Properties and Constructors + #endregion Properties and Constructors -#region Table + #region Table #if !DYNAMORM_OMMIT_OLDSYNTAX @@ -329,7 +329,7 @@ namespace DynamORM #endif -#endregion Table + #endregion Table /// Adds cached builder. /// New dynamic builder. @@ -347,7 +347,7 @@ namespace DynamORM RemainingBuilders.Remove(builder); } -#region From/Insert/Update/Delete + #region From/Insert/Update/Delete /// /// Adds to the FROM clause the contents obtained by parsing the dynamic lambda expressions given. The supported @@ -630,7 +630,7 @@ namespace DynamORM { try { -#region Update + #region Update Dictionary parametersUp = new Dictionary(); @@ -653,9 +653,9 @@ namespace DynamORM else PrepareBatchUpdate(t, mapper, cmdUp, parametersUp); -#endregion Update + #endregion Update -#region Insert + #region Insert Dictionary parametersIn = new Dictionary(); @@ -678,7 +678,7 @@ namespace DynamORM else PrepareBatchInsert(t, mapper, cmdIn, parametersIn); -#endregion Insert + #endregion Insert foreach (var o in e) { @@ -1023,9 +1023,9 @@ namespace DynamORM mapper.DeleteCommandText = cmd.CommandText; } -#endregion From/Insert/Update/Delete + #endregion From/Insert/Update/Delete -#region Procedure + #region Procedure /// Execute stored procedure. /// Name of stored procedure to execute. @@ -1092,9 +1092,9 @@ namespace DynamORM } } -#endregion Procedure + #endregion Procedure -#region Execute + #region Execute /// Execute non query. /// SQL query containing numbered parameters in format provided by @@ -1151,9 +1151,9 @@ namespace DynamORM return ret; } -#endregion Execute + #endregion Execute -#region Scalar + #region Scalar /// Returns a single result. /// SQL query containing numbered parameters in format provided by @@ -1224,9 +1224,9 @@ namespace DynamORM #endif -#endregion Scalar + #endregion Scalar -#region Query + #region Query /// Enumerate the reader and yield the result. /// SQL query containing numbered parameters in format provided by @@ -1308,9 +1308,9 @@ namespace DynamORM } } -#endregion Query + #endregion Query -#region Schema + #region Schema /// Builds query cache if necessary and returns it. /// The builder containing query to read schema from. @@ -1453,7 +1453,7 @@ namespace DynamORM /// Command containing query to execute. /// List of objects . /// If your database doesn't get those values in upper case (like most of the databases) you should override this method. - protected virtual IEnumerable ReadSchema(IDbCommand cmd) + public virtual IEnumerable ReadSchema(IDbCommand cmd) { DataTable st = null; @@ -1521,7 +1521,7 @@ namespace DynamORM (Options & DynamicDatabaseOptions.SupportSchema) == DynamicDatabaseOptions.SupportSchema; bool mapperSchema = mapper != null && mapper.Table != null && (mapper.Table.Override || !databaseSchemaSupport); -#region Database schema + #region Database schema if (databaseSchemaSupport && !Schema.ContainsKey(tableName.ToLower())) { @@ -1533,9 +1533,9 @@ namespace DynamORM Schema[tableName.ToLower()] = schema; } -#endregion Database schema + #endregion Database schema -#region Type schema + #region Type schema if ((mapperSchema && !Schema.ContainsKey(mapper.Type.FullName)) || (schema == null && mapper != null && !mapper.Type.IsAnonymous())) @@ -1543,7 +1543,7 @@ namespace DynamORM // TODO: Ged rid of this monster below... if (databaseSchemaSupport) { -#region Merge with db schema + #region Merge with db schema schema = mapper.ColumnsMap.ToDictionary(k => k.Key, (v) => { @@ -1579,11 +1579,11 @@ namespace DynamORM }; }); -#endregion Merge with db schema + #endregion Merge with db schema } else { -#region MapEnumerable based only on type + #region MapEnumerable based only on type schema = mapper.ColumnsMap.ToDictionary(k => k.Key, v => new DynamicSchemaColumn @@ -1598,21 +1598,21 @@ namespace DynamORM Scale = DynamicExtensions.CoalesceNullable(v.Value.Column != null ? v.Value.Column.Scale : null, 0).Value, }); -#endregion MapEnumerable based only on type + #endregion MapEnumerable based only on type } } if (mapper != null && schema != null) Schema[mapper.Type.FullName] = schema; -#endregion Type schema + #endregion Type schema return schema; } -#endregion Schema + #endregion Schema -#region Decorators + #region Decorators /// Gets or sets left side decorator for database objects. public string LeftDecorator @@ -1701,9 +1701,9 @@ namespace DynamORM cmd.Dump(Console.Out); } -#endregion Decorators + #endregion Decorators -#region Connection + #region Connection /// Open managed connection. /// Opened connection. @@ -1809,9 +1809,9 @@ namespace DynamORM .ExecuteNonQuery(); } -#endregion Connection + #endregion Connection -#region Transaction + #region Transaction /// Begins a global database transaction. /// Using this method connection is set to single open @@ -1873,9 +1873,9 @@ namespace DynamORM }); } -#endregion Transaction + #endregion Transaction -#region IExtendedDisposable Members + #region IExtendedDisposable Members /// Performs application-defined tasks associated with freeing, /// releasing, or resetting unmanaged resources. @@ -1944,6 +1944,6 @@ namespace DynamORM /// Gets a value indicating whether this instance is disposed. public bool IsDisposed { get; private set; } -#endregion IExtendedDisposable Members + #endregion IExtendedDisposable Members } } \ No newline at end of file diff --git a/DynamORM/DynamicProcedureInvoker.cs b/DynamORM/DynamicProcedureInvoker.cs index 1f10840..379f8f7 100644 --- a/DynamORM/DynamicProcedureInvoker.cs +++ b/DynamORM/DynamicProcedureInvoker.cs @@ -138,11 +138,11 @@ namespace DynamORM cmd.AddParameter( _db.GetParameterName(paramName), dcv.ParameterDirection, ds.Type, ds.Size, ds.Precision, ds.Scale, - isOut ? DBNull.Value : arg); + isOut ? DBNull.Value : dcv.Value); } else cmd.AddParameter( _db.GetParameterName(paramName), dcv.ParameterDirection, - arg == null ? DbType.String : arg.GetType().ToDbType(), 0, isOut ? DBNull.Value : arg); + arg == null ? DbType.String : arg.GetType().ToDbType(), 0, isOut ? DBNull.Value : dcv.Value); } else { diff --git a/Tester/Program.cs b/Tester/Program.cs index e8da889..2e703eb 100644 --- a/Tester/Program.cs +++ b/Tester/Program.cs @@ -20,6 +20,7 @@ namespace Tester //// "Data Source=test.db3;", //// DynamORM.DynamicDatabaseOptions.SingleConnection | DynamORM.DynamicDatabaseOptions.SingleTransaction | //// DynamORM.DynamicDatabaseOptions.SupportSchema | DynamORM.DynamicDatabaseOptions.SupportLimitOffset); + /// } private static void Main(string[] args)