From f85dc06b18335f88b236032b8861c47215d7781f Mon Sep 17 00:00:00 2001 From: Lawrence LCI Date: Fri, 24 Sep 2021 09:42:37 -0700 Subject: [PATCH 1/6] Move dotnet version of SqlBulkCopyColumnMappingCollection to shared src and update the references in the netfx csproj --- .../src/Microsoft.Data.SqlClient.csproj | 4 +- .../netfx/src/Microsoft.Data.SqlClient.csproj | 6 +- .../SqlBulkCopyColumnMappingCollection.cs | 203 ------------------ .../SqlBulkCopyColumnMappingCollection.cs | 0 4 files changed, 7 insertions(+), 206 deletions(-) delete mode 100644 src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs rename src/Microsoft.Data.SqlClient/{netcore => }/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs (100%) diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj index d918134b15..8808067bfd 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj @@ -187,6 +187,9 @@ Microsoft\Data\SqlClient\SqlBulkCopyColumnMapping.cs + + Microsoft\Data\SqlClient\SqlBulkCopyColumnMappingCollection.cs + Microsoft\Data\SqlClient\SqlBulkCopyOptions.cs @@ -473,7 +476,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index f54e7630c6..cd44c00fac 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -258,6 +258,9 @@ Microsoft\Data\SqlClient\SqlBulkCopyColumnMapping.cs + + Microsoft\Data\SqlClient\SqlBulkCopyColumnMappingCollection.cs + Microsoft\Data\SqlClient\SqlBulkCopyOptions.cs @@ -430,11 +433,10 @@ - + - diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs deleted file mode 100644 index 526e0a7650..0000000000 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs +++ /dev/null @@ -1,203 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Collections; -using System.Diagnostics; -using Microsoft.Data.Common; - -namespace Microsoft.Data.SqlClient -{ - /// - public sealed class SqlBulkCopyColumnMappingCollection : CollectionBase - { - - private enum MappingSchema - { - Undefined = 0, - NamesNames = 1, - NemesOrdinals = 2, - OrdinalsNames = 3, - OrdinalsOrdinals = 4, - } - - private bool _readOnly; - private MappingSchema _mappingSchema = MappingSchema.Undefined; - - internal SqlBulkCopyColumnMappingCollection() - { - } - - /// - public SqlBulkCopyColumnMapping this[int index] - { - get - { - return (SqlBulkCopyColumnMapping)this.List[index]; - } - } - - internal bool ReadOnly - { - get - { - return _readOnly; - } - set - { - _readOnly = value; - } - } - - /// - public SqlBulkCopyColumnMapping Add(SqlBulkCopyColumnMapping bulkCopyColumnMapping) - { - AssertWriteAccess(); - Debug.Assert(ADP.IsEmpty(bulkCopyColumnMapping.SourceColumn) || bulkCopyColumnMapping._internalSourceColumnOrdinal == -1, "BulkLoadAmbiguousSourceColumn"); - if (((ADP.IsEmpty(bulkCopyColumnMapping.SourceColumn)) && (bulkCopyColumnMapping.SourceOrdinal == -1)) - || ((ADP.IsEmpty(bulkCopyColumnMapping.DestinationColumn)) && (bulkCopyColumnMapping.DestinationOrdinal == -1))) - { - throw SQL.BulkLoadNonMatchingColumnMapping(); - } - InnerList.Add(bulkCopyColumnMapping); - return bulkCopyColumnMapping; - } - - /// - public SqlBulkCopyColumnMapping Add(string sourceColumn, string destinationColumn) - { - AssertWriteAccess(); - SqlBulkCopyColumnMapping column = new SqlBulkCopyColumnMapping(sourceColumn, destinationColumn); - return Add(column); - } - - /// - public SqlBulkCopyColumnMapping Add(int sourceColumnIndex, string destinationColumn) - { - AssertWriteAccess(); - SqlBulkCopyColumnMapping column = new SqlBulkCopyColumnMapping(sourceColumnIndex, destinationColumn); - return Add(column); - } - - /// - public SqlBulkCopyColumnMapping Add(string sourceColumn, int destinationColumnIndex) - { - AssertWriteAccess(); - SqlBulkCopyColumnMapping column = new SqlBulkCopyColumnMapping(sourceColumn, destinationColumnIndex); - return Add(column); - } - - /// - public SqlBulkCopyColumnMapping Add(int sourceColumnIndex, int destinationColumnIndex) - { - AssertWriteAccess(); - SqlBulkCopyColumnMapping column = new SqlBulkCopyColumnMapping(sourceColumnIndex, destinationColumnIndex); - return Add(column); - } - - private void AssertWriteAccess() - { - if (ReadOnly) - { - throw SQL.BulkLoadMappingInaccessible(); - } - } - - /// - new public void Clear() - { - AssertWriteAccess(); - base.Clear(); - } - - /// - public bool Contains(SqlBulkCopyColumnMapping value) - { - return (-1 != InnerList.IndexOf(value)); - } - - /// - public void CopyTo(SqlBulkCopyColumnMapping[] array, int index) - { - InnerList.CopyTo(array, index); - } - - internal void CreateDefaultMapping(int columnCount) - { - for (int i = 0; i < columnCount; i++) - { - InnerList.Add(new SqlBulkCopyColumnMapping(i, i)); - } - } - - /// - public int IndexOf(SqlBulkCopyColumnMapping value) - { - return InnerList.IndexOf(value); - } - - /// - public void Insert(int index, SqlBulkCopyColumnMapping value) - { - AssertWriteAccess(); - InnerList.Insert(index, value); - } - - /// - public void Remove(SqlBulkCopyColumnMapping value) - { - AssertWriteAccess(); - InnerList.Remove(value); - } - - /// - new public void RemoveAt(int index) - { - AssertWriteAccess(); - base.RemoveAt(index); - } - - internal void ValidateCollection() - { - MappingSchema mappingSchema; - foreach (SqlBulkCopyColumnMapping a in this) - { - if (a.SourceOrdinal != -1) - { - if (a.DestinationOrdinal != -1) - { - mappingSchema = MappingSchema.OrdinalsOrdinals; - } - else - { - mappingSchema = MappingSchema.OrdinalsNames; - } - } - else - { - if (a.DestinationOrdinal != -1) - { - mappingSchema = MappingSchema.NemesOrdinals; - } - else - { - mappingSchema = MappingSchema.NamesNames; - } - } - - if (_mappingSchema == MappingSchema.Undefined) - { - _mappingSchema = mappingSchema; - } - else - { - if (_mappingSchema != mappingSchema) - { - throw SQL.BulkLoadMappingsNamesOrOrdinalsOnly(); - } - } - } - } - } -} - diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs similarity index 100% rename from src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs rename to src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs From 02b4bfbe5f2f44ca9f22376f9ff0ce014cc76a82 Mon Sep 17 00:00:00 2001 From: Lawrence LCI Date: Fri, 24 Sep 2021 09:47:04 -0700 Subject: [PATCH 2/6] Fix compiler error due to updated path to the snippet include file in shared src --- .../SqlBulkCopyColumnMappingCollection.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs index 0627dd1918..5c71de9df7 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs @@ -7,7 +7,7 @@ namespace Microsoft.Data.SqlClient { - /// + /// public sealed class SqlBulkCopyColumnMappingCollection : CollectionBase { private enum MappingSchema @@ -27,10 +27,10 @@ internal SqlBulkCopyColumnMappingCollection() internal bool ReadOnly { get; set; } - /// + /// public SqlBulkCopyColumnMapping this[int index] => (SqlBulkCopyColumnMapping)this.List[index]; - /// + /// public SqlBulkCopyColumnMapping Add(SqlBulkCopyColumnMapping bulkCopyColumnMapping) { AssertWriteAccess(); @@ -44,28 +44,28 @@ public SqlBulkCopyColumnMapping Add(SqlBulkCopyColumnMapping bulkCopyColumnMappi return bulkCopyColumnMapping; } - /// + /// public SqlBulkCopyColumnMapping Add(string sourceColumn, string destinationColumn) { AssertWriteAccess(); return Add(new SqlBulkCopyColumnMapping(sourceColumn, destinationColumn)); } - /// + /// public SqlBulkCopyColumnMapping Add(int sourceColumnIndex, string destinationColumn) { AssertWriteAccess(); return Add(new SqlBulkCopyColumnMapping(sourceColumnIndex, destinationColumn)); } - /// + /// public SqlBulkCopyColumnMapping Add(string sourceColumn, int destinationColumnIndex) { AssertWriteAccess(); return Add(new SqlBulkCopyColumnMapping(sourceColumn, destinationColumnIndex)); } - /// + /// public SqlBulkCopyColumnMapping Add(int sourceColumnIndex, int destinationColumnIndex) { AssertWriteAccess(); @@ -80,17 +80,17 @@ private void AssertWriteAccess() } } - /// + /// public new void Clear() { AssertWriteAccess(); base.Clear(); } - /// + /// public bool Contains(SqlBulkCopyColumnMapping value) => InnerList.Contains(value); - /// + /// public void CopyTo(SqlBulkCopyColumnMapping[] array, int index) => InnerList.CopyTo(array, index); internal void CreateDefaultMapping(int columnCount) @@ -101,24 +101,24 @@ internal void CreateDefaultMapping(int columnCount) } } - /// + /// public int IndexOf(SqlBulkCopyColumnMapping value) => InnerList.IndexOf(value); - /// + /// public void Insert(int index, SqlBulkCopyColumnMapping value) { AssertWriteAccess(); InnerList.Insert(index, value); } - /// + /// public void Remove(SqlBulkCopyColumnMapping value) { AssertWriteAccess(); InnerList.Remove(value); } - /// + /// public new void RemoveAt(int index) { AssertWriteAccess(); From 913117341969ccdee77afaadd3afe2f7ed045096 Mon Sep 17 00:00:00 2001 From: Lawrence LCI Date: Fri, 24 Sep 2021 09:48:24 -0700 Subject: [PATCH 3/6] Update file to conform to coding style cleaning up info message IDE0003 --- .../Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs index 5c71de9df7..dd516c740e 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs @@ -28,7 +28,7 @@ internal SqlBulkCopyColumnMappingCollection() internal bool ReadOnly { get; set; } /// - public SqlBulkCopyColumnMapping this[int index] => (SqlBulkCopyColumnMapping)this.List[index]; + public SqlBulkCopyColumnMapping this[int index] => (SqlBulkCopyColumnMapping)List[index]; /// public SqlBulkCopyColumnMapping Add(SqlBulkCopyColumnMapping bulkCopyColumnMapping) From bfe710699167969ba7d2da8c020038012365c096 Mon Sep 17 00:00:00 2001 From: Lawrence LCI Date: Wed, 29 Sep 2021 17:22:28 -0700 Subject: [PATCH 4/6] Fix the typo in the MappingSchema enum --- .../Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs index dd516c740e..8178334eaf 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs @@ -14,7 +14,7 @@ private enum MappingSchema { Undefined = 0, NamesNames = 1, - NemesOrdinals = 2, + NamesOrdinals = 2, OrdinalsNames = 3, OrdinalsOrdinals = 4, } @@ -132,7 +132,7 @@ internal void ValidateCollection() { mappingSchema = a.SourceOrdinal != -1 ? (a.DestinationOrdinal != -1 ? MappingSchema.OrdinalsOrdinals : MappingSchema.OrdinalsNames) : - (a.DestinationOrdinal != -1 ? MappingSchema.NemesOrdinals : MappingSchema.NamesNames); + (a.DestinationOrdinal != -1 ? MappingSchema.NamesOrdinals : MappingSchema.NamesNames); if (_mappingSchema == MappingSchema.Undefined) { From ab655f9f54174d0782395ee11a271e0b9e6036e0 Mon Sep 17 00:00:00 2001 From: Lawrence LCI Date: Fri, 8 Oct 2021 12:48:19 -0700 Subject: [PATCH 5/6] Clean up the if-else statement in ValidateCollection --- .../Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs index 8178334eaf..f7bfd723e5 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs +++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs @@ -138,12 +138,9 @@ internal void ValidateCollection() { _mappingSchema = mappingSchema; } - else + else if (_mappingSchema != mappingSchema) { - if (_mappingSchema != mappingSchema) - { - throw SQL.BulkLoadMappingsNamesOrOrdinalsOnly(); - } + throw SQL.BulkLoadMappingsNamesOrOrdinalsOnly(); } } } From c29339a80326e2d5a44bc8ddb0f15a768ce6b513 Mon Sep 17 00:00:00 2001 From: Lawrence LCI Date: Tue, 12 Oct 2021 12:51:54 -0700 Subject: [PATCH 6/6] Fix compiler error in the netfx project due to merge --- .../netfx/src/Microsoft.Data.SqlClient.csproj | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj index 6052ddff2a..631a131505 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj @@ -473,8 +473,6 @@ - - @@ -654,4 +652,4 @@ - \ No newline at end of file +