diff --git a/src/EFCore.PG/Extensions/NpgsqlServiceCollectionExtensions.cs b/src/EFCore.PG/Extensions/NpgsqlServiceCollectionExtensions.cs
index ee76be5df..d4de7d139 100644
--- a/src/EFCore.PG/Extensions/NpgsqlServiceCollectionExtensions.cs
+++ b/src/EFCore.PG/Extensions/NpgsqlServiceCollectionExtensions.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 JetBrains.Annotations;
@@ -28,7 +30,6 @@
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.EntityFrameworkCore.Query.ExpressionTranslators;
using Microsoft.EntityFrameworkCore.Query.ExpressionVisitors;
-using Microsoft.EntityFrameworkCore.Query.Internal;
using Microsoft.EntityFrameworkCore.Query.Sql;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore.Update;
@@ -51,6 +52,10 @@
// ReSharper disable once CheckNamespace
namespace Microsoft.Extensions.DependencyInjection
{
+ ///
+ /// Provides extension methods to configure Entity Framework Core for Npgsql.
+ ///
+ // ReSharper disable once UnusedMember.Global
public static class NpgsqlEntityFrameworkServicesBuilderExtensions
{
///
@@ -86,35 +91,37 @@ public static IServiceCollection AddEntityFrameworkNpgsql([NotNull] this IServic
{
Check.NotNull(serviceCollection, nameof(serviceCollection));
- var builder = new EntityFrameworkRelationalServicesBuilder(serviceCollection)
- .TryAdd>()
- .TryAdd(p => p.GetService())
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd(p => p.GetService())
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd()
- .TryAdd(p => p.GetService())
- .TryAdd()
- .TryAddProviderSpecificServices(b => b
- .TryAddSingleton()
- .TryAddSingleton()
- .TryAddScoped()
- .TryAddScoped());
+ var builder =
+ new EntityFrameworkRelationalServicesBuilder(serviceCollection)
+ .TryAdd>()
+ .TryAdd(p => p.GetService())
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd(p => p.GetService())
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd()
+ .TryAdd(p => p.GetService())
+ .TryAdd()
+ .TryAddProviderSpecificServices(
+ b => b
+ .TryAddSingleton()
+ .TryAddSingleton()
+ .TryAddScoped()
+ .TryAddScoped());
builder.TryAddCoreServices();
diff --git a/src/EFCore.PG/Query/Expressions/Internal/ArrayAnyAllExpression.cs b/src/EFCore.PG/Query/Expressions/Internal/ArrayAnyAllExpression.cs
index 04054d3a4..a5ea6b89d 100644
--- a/src/EFCore.PG/Query/Expressions/Internal/ArrayAnyAllExpression.cs
+++ b/src/EFCore.PG/Query/Expressions/Internal/ArrayAnyAllExpression.cs
@@ -43,24 +43,27 @@ namespace Npgsql.EntityFrameworkCore.PostgreSQL.Query.Expressions.Internal
public class ArrayAnyAllExpression : Expression, IEquatable
{
///
- public override ExpressionType NodeType { get; } = ExpressionType.Extension;
+ public override ExpressionType NodeType => ExpressionType.Extension;
///
- public override Type Type { get; } = typeof(bool);
+ public override Type Type => typeof(bool);
///
/// The value to test against the .
///
+ [NotNull]
public virtual Expression Operand { get; }
///
/// The array of values or patterns to test for the .
///
+ [NotNull]
public virtual Expression Array { get; }
///
/// The operator.
///
+ [NotNull]
public virtual string Operator { get; }
///
@@ -68,6 +71,11 @@ public class ArrayAnyAllExpression : Expression, IEquatable
public virtual ArrayComparisonType ArrayComparisonType { get; }
+ ///
+ /// True if this instance represents: {operand} = ANY ({array})".
+ ///
+ public bool IsContainsExpression => ArrayComparisonType is ArrayComparisonType.ANY && Operator is "=";
+
///
/// Constructs a .
///