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);
}