diff --git a/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMemberTranslator.cs b/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMemberTranslator.cs index 0e14630d4..ff4dabdc6 100644 --- a/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMemberTranslator.cs +++ b/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMemberTranslator.cs @@ -1,4 +1,5 @@ #region License + // The PostgreSQL License // // Copyright (C) 2016 The Npgsql Development Team @@ -19,6 +20,7 @@ // AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS // ON AN "AS IS" BASIS, AND THE NPGSQL DEVELOPMENT TEAM HAS NO OBLIGATIONS // TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + #endregion using System.Collections.Generic; @@ -28,23 +30,37 @@ namespace Npgsql.EntityFrameworkCore.PostgreSQL.Query.ExpressionTranslators.Internal { + /// + /// A composite member translator that dispatches to multiple specialized member translators specific to Npgsql. + /// public class NpgsqlCompositeMemberTranslator : RelationalCompositeMemberTranslator { + /// + /// The default member translators registered by the Npgsql provider. + /// + [NotNull] [ItemNotNull] static readonly IMemberTranslator[] MemberTranslators = + { + new NpgsqlStringLengthTranslator(), + new NpgsqlDateTimeMemberTranslator() + }; + + /// public NpgsqlCompositeMemberTranslator( [NotNull] RelationalCompositeMemberTranslatorDependencies dependencies, [NotNull] INpgsqlOptions npgsqlOptions) : base(dependencies) { - AddTranslators(new List - { - new NpgsqlStringLengthTranslator(), - new NpgsqlDateTimeMemberTranslator() - }); + // ReSharper disable once VirtualMemberCallInConstructor + AddTranslators(MemberTranslators); foreach (var plugin in npgsqlOptions.Plugins) plugin.AddMemberTranslators(this); } + /// + /// Adds additional dispatches to the translators list. + /// + /// The translators. public new virtual void AddTranslators([NotNull] IEnumerable translators) => base.AddTranslators(translators); } diff --git a/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMethodCallTranslator.cs b/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMethodCallTranslator.cs index 5935a105d..e51eff11b 100644 --- a/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMethodCallTranslator.cs +++ b/src/EFCore.PG/Query/ExpressionTranslators/Internal/NpgsqlCompositeMethodCallTranslator.cs @@ -1,4 +1,5 @@ #region License + // The PostgreSQL License // // Copyright (C) 2016 The Npgsql Development Team @@ -19,6 +20,7 @@ // AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS // ON AN "AS IS" BASIS, AND THE NPGSQL DEVELOPMENT TEAM HAS NO OBLIGATIONS // TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + #endregion using System.Collections.Generic; @@ -28,9 +30,15 @@ namespace Npgsql.EntityFrameworkCore.PostgreSQL.Query.ExpressionTranslators.Internal { + /// + /// A composite method call translator that dispatches to multiple specialized method call translators specific to Npgsql. + /// public class NpgsqlCompositeMethodCallTranslator : RelationalCompositeMethodCallTranslator { - static readonly IMethodCallTranslator[] _methodCallTranslators = + /// + /// The default method call translators registered by the Npgsql provider. + /// + [NotNull] [ItemNotNull] static readonly IMethodCallTranslator[] MethodCallTranslators = { new NpgsqlArraySequenceEqualTranslator(), new NpgsqlConvertTranslator(), @@ -55,18 +63,23 @@ public class NpgsqlCompositeMethodCallTranslator : RelationalCompositeMethodCall new NpgsqlRangeTranslator() }; + /// public NpgsqlCompositeMethodCallTranslator( [NotNull] RelationalCompositeMethodCallTranslatorDependencies dependencies, [NotNull] INpgsqlOptions npgsqlOptions) : base(dependencies) { // ReSharper disable once DoNotCallOverridableMethodsInConstructor - AddTranslators(_methodCallTranslators); + AddTranslators(MethodCallTranslators); foreach (var plugin in npgsqlOptions.Plugins) plugin.AddMethodCallTranslators(this); } + /// + /// Adds additional dispatches to the translators list. + /// + /// The translators. public new virtual void AddTranslators([NotNull] IEnumerable translators) => base.AddTranslators(translators); }