From 3b71e1295f4296a3c258a7e1d0cd1a95195b6372 Mon Sep 17 00:00:00 2001 From: Austin Drenski Date: Tue, 24 Jul 2018 23:21:12 -0400 Subject: [PATCH] Refactor + doc comments for array/service classes --- .../NpgsqlServiceCollectionExtensions.cs | 67 ++++++++++--------- .../Internal/ArrayAnyAllExpression.cs | 12 +++- 2 files changed, 47 insertions(+), 32 deletions(-) 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 . ///