File-scoped namespaces

This commit is contained in:
Shay Rojansky
2022-05-17 14:44:27 +02:00
parent 5e2f346a8b
commit d876e7e4ca
17 changed files with 1358 additions and 1375 deletions

View File

@@ -14,10 +14,10 @@ using Microsoft.EntityFrameworkCore.TestUtilities;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Xunit; using Xunit;
namespace EFCore.NamingConventions.Test namespace EFCore.NamingConventions.Test;
public class NameRewritingConventionTest
{ {
public class NameRewritingConventionTest
{
[Fact] [Fact]
public void Table() public void Table()
{ {
@@ -561,5 +561,4 @@ namespace EFCore.NamingConventions.Test
{ {
public int OwnedProperty { get; set; } public int OwnedProperty { get; set; }
} }
}
} }

View File

@@ -2,10 +2,10 @@ using System.Globalization;
using EFCore.NamingConventions.Internal; using EFCore.NamingConventions.Internal;
using Xunit; using Xunit;
namespace EFCore.NamingConventions.Test namespace EFCore.NamingConventions.Test;
public class RewriterTest
{ {
public class RewriterTest
{
[Fact] [Fact]
public void SnakeCase() public void SnakeCase()
=> Assert.Equal("full_name", => Assert.Equal("full_name",
@@ -30,5 +30,4 @@ namespace EFCore.NamingConventions.Test
public void UpperCase() public void UpperCase()
=> Assert.Equal("FULLNAME", => Assert.Equal("FULLNAME",
new UpperCaseNameRewriter(CultureInfo.InvariantCulture).RewriteName("FullName")); new UpperCaseNameRewriter(CultureInfo.InvariantCulture).RewriteName("FullName"));
}
} }

View File

@@ -7,10 +7,10 @@ using Microsoft.EntityFrameworkCore.Sqlite.Diagnostics.Internal;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace Microsoft.EntityFrameworkCore.TestUtilities namespace Microsoft.EntityFrameworkCore.TestUtilities;
public class SqliteTestHelpers : TestHelpers
{ {
public class SqliteTestHelpers : TestHelpers
{
protected SqliteTestHelpers() protected SqliteTestHelpers()
{ {
} }
@@ -26,5 +26,4 @@ namespace Microsoft.EntityFrameworkCore.TestUtilities
#pragma warning disable EF1001 #pragma warning disable EF1001
public override LoggingDefinitions LoggingDefinitions { get; } = new SqliteLoggingDefinitions(); public override LoggingDefinitions LoggingDefinitions { get; } = new SqliteLoggingDefinitions();
#pragma warning restore EF1001 #pragma warning restore EF1001
}
} }

View File

@@ -6,11 +6,11 @@ using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.EntityFrameworkCore.Diagnostics;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace Microsoft.EntityFrameworkCore namespace Microsoft.EntityFrameworkCore;
[DebuggerStepThrough]
internal static class Check
{ {
[DebuggerStepThrough]
internal static class Check
{
[ContractAnnotation("value:null => halt")] [ContractAnnotation("value:null => halt")]
public static T NotNull<T>([NoEnumeration] T value, [InvokerParameterName] [NotNull] string parameterName) public static T NotNull<T>([NoEnumeration] T value, [InvokerParameterName] [NotNull] string parameterName)
{ {
@@ -106,5 +106,4 @@ namespace Microsoft.EntityFrameworkCore
return value; return value;
} }
}
} }

View File

@@ -1,37 +1,37 @@
using System; using System;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace JetBrains.Annotations namespace JetBrains.Annotations;
[AttributeUsage(
AttributeTargets.Method | AttributeTargets.Parameter |
AttributeTargets.Property | AttributeTargets.Delegate |
AttributeTargets.Field)]
internal sealed class NotNullAttribute : Attribute
{ {
[AttributeUsage( }
[AttributeUsage(
AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Parameter |
AttributeTargets.Property | AttributeTargets.Delegate | AttributeTargets.Property | AttributeTargets.Delegate |
AttributeTargets.Field)] AttributeTargets.Field)]
internal sealed class NotNullAttribute : Attribute internal sealed class CanBeNullAttribute : Attribute
{ {
} }
[AttributeUsage( [AttributeUsage(AttributeTargets.Parameter)]
AttributeTargets.Method | AttributeTargets.Parameter | internal sealed class InvokerParameterNameAttribute : Attribute
AttributeTargets.Property | AttributeTargets.Delegate | {
AttributeTargets.Field)] }
internal sealed class CanBeNullAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Parameter)] [AttributeUsage(AttributeTargets.Parameter)]
internal sealed class InvokerParameterNameAttribute : Attribute internal sealed class NoEnumerationAttribute : Attribute
{ {
} }
[AttributeUsage(AttributeTargets.Parameter)] [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
internal sealed class NoEnumerationAttribute : Attribute internal sealed class ContractAnnotationAttribute : Attribute
{ {
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
internal sealed class ContractAnnotationAttribute : Attribute
{
public string Contract { get; } public string Contract { get; }
public bool ForceFullStates { get; } public bool ForceFullStates { get; }
@@ -46,11 +46,11 @@ namespace JetBrains.Annotations
Contract = contract; Contract = contract;
ForceFullStates = forceFullStates; ForceFullStates = forceFullStates;
} }
} }
[AttributeUsage(AttributeTargets.All)] [AttributeUsage(AttributeTargets.All)]
internal sealed class UsedImplicitlyAttribute : Attribute internal sealed class UsedImplicitlyAttribute : Attribute
{ {
public UsedImplicitlyAttribute() public UsedImplicitlyAttribute()
: this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default)
{ {
@@ -75,34 +75,33 @@ namespace JetBrains.Annotations
public ImplicitUseKindFlags UseKindFlags { get; } public ImplicitUseKindFlags UseKindFlags { get; }
public ImplicitUseTargetFlags TargetFlags { get; } public ImplicitUseTargetFlags TargetFlags { get; }
} }
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Delegate)] [AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Delegate)]
internal sealed class StringFormatMethodAttribute : Attribute internal sealed class StringFormatMethodAttribute : Attribute
{ {
public StringFormatMethodAttribute([NotNull] string formatParameterName) public StringFormatMethodAttribute([NotNull] string formatParameterName)
=> FormatParameterName = formatParameterName; => FormatParameterName = formatParameterName;
[NotNull] [NotNull]
public string FormatParameterName { get; } public string FormatParameterName { get; }
} }
[Flags] [Flags]
internal enum ImplicitUseKindFlags internal enum ImplicitUseKindFlags
{ {
Default = Access | Assign | InstantiatedWithFixedConstructorSignature, Default = Access | Assign | InstantiatedWithFixedConstructorSignature,
Access = 1, Access = 1,
Assign = 2, Assign = 2,
InstantiatedWithFixedConstructorSignature = 4, InstantiatedWithFixedConstructorSignature = 4,
InstantiatedNoFixedConstructorSignature = 8 InstantiatedNoFixedConstructorSignature = 8
} }
[Flags] [Flags]
internal enum ImplicitUseTargetFlags internal enum ImplicitUseTargetFlags
{ {
Default = Itself, Default = Itself,
Itself = 1, Itself = 1,
Members = 2, Members = 2,
WithMembers = Itself | Members WithMembers = Itself | Members
}
} }

View File

@@ -1,14 +1,13 @@
using System.Globalization; using System.Globalization;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class CamelCaseNameRewriter : INameRewriter
{ {
public class CamelCaseNameRewriter : INameRewriter
{
private readonly CultureInfo _culture; private readonly CultureInfo _culture;
public CamelCaseNameRewriter(CultureInfo culture) => _culture = culture; public CamelCaseNameRewriter(CultureInfo culture) => _culture = culture;
public string RewriteName(string name) => public string RewriteName(string name) =>
string.IsNullOrEmpty(name) ? name: char.ToLower(name[0], _culture) + name.Substring(1); string.IsNullOrEmpty(name) ? name: char.ToLower(name[0], _culture) + name.Substring(1);
}
} }

View File

@@ -1,7 +1,6 @@
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public interface INameRewriter
{ {
public interface INameRewriter
{
string RewriteName(string name); string RewriteName(string name);
}
} }

View File

@@ -1,12 +1,11 @@
using System.Globalization; using System.Globalization;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class LowerCaseNameRewriter : INameRewriter
{ {
public class LowerCaseNameRewriter : INameRewriter
{
private readonly CultureInfo _culture; private readonly CultureInfo _culture;
public LowerCaseNameRewriter(CultureInfo culture) => _culture = culture; public LowerCaseNameRewriter(CultureInfo culture) => _culture = culture;
public string RewriteName(string name) => name.ToLower(_culture); public string RewriteName(string name) => name.ToLower(_culture);
}
} }

View File

@@ -5,9 +5,9 @@ using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore.Metadata.Conventions; using Microsoft.EntityFrameworkCore.Metadata.Conventions;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
{
public class NameRewritingConvention : public class NameRewritingConvention :
IEntityTypeAddedConvention, IEntityTypeAddedConvention,
IEntityTypeAnnotationChangedConvention, IEntityTypeAnnotationChangedConvention,
IPropertyAddedConvention, IPropertyAddedConvention,
@@ -17,7 +17,7 @@ namespace EFCore.NamingConventions.Internal
IIndexAddedConvention, IIndexAddedConvention,
IEntityTypeBaseTypeChangedConvention, IEntityTypeBaseTypeChangedConvention,
IModelFinalizingConvention IModelFinalizingConvention
{ {
private static readonly StoreObjectType[] _storeObjectTypes private static readonly StoreObjectType[] _storeObjectTypes
= { StoreObjectType.Table, StoreObjectType.View, StoreObjectType.Function, StoreObjectType.SqlQuery }; = { StoreObjectType.Table, StoreObjectType.View, StoreObjectType.Function, StoreObjectType.SqlQuery };
@@ -278,5 +278,4 @@ namespace EFCore.NamingConventions.Internal
} }
} }
} }
}
} }

View File

@@ -1,12 +1,11 @@
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public enum NamingConvention
{ {
public enum NamingConvention
{
None, None,
SnakeCase, SnakeCase,
LowerCase, LowerCase,
CamelCase, CamelCase,
UpperCase, UpperCase,
UpperSnakeCase UpperSnakeCase
}
} }

View File

@@ -5,10 +5,10 @@ using Microsoft.EntityFrameworkCore.Metadata.Conventions;
using Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class NamingConventionSetPlugin : IConventionSetPlugin
{ {
public class NamingConventionSetPlugin : IConventionSetPlugin
{
private readonly IDbContextOptions _options; private readonly IDbContextOptions _options;
public NamingConventionSetPlugin([NotNull] IDbContextOptions options) => _options = options; public NamingConventionSetPlugin([NotNull] IDbContextOptions options) => _options = options;
@@ -44,5 +44,4 @@ namespace EFCore.NamingConventions.Internal
return conventionSet; return conventionSet;
} }
}
} }

View File

@@ -6,10 +6,10 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class NamingConventionsOptionsExtension : IDbContextOptionsExtension
{ {
public class NamingConventionsOptionsExtension : IDbContextOptionsExtension
{
private DbContextOptionsExtensionInfo _info; private DbContextOptionsExtensionInfo _info;
private NamingConvention _namingConvention; private NamingConvention _namingConvention;
private CultureInfo _culture; private CultureInfo _culture;
@@ -145,5 +145,4 @@ namespace EFCore.NamingConventions.Internal
} }
} }
} }
}
} }

View File

@@ -2,10 +2,10 @@ using System;
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class SnakeCaseNameRewriter : INameRewriter
{ {
public class SnakeCaseNameRewriter : INameRewriter
{
private readonly CultureInfo _culture; private readonly CultureInfo _culture;
public SnakeCaseNameRewriter(CultureInfo culture) => _culture = culture; public SnakeCaseNameRewriter(CultureInfo culture) => _culture = culture;
@@ -71,5 +71,4 @@ namespace EFCore.NamingConventions.Internal
return builder.ToString(); return builder.ToString();
} }
}
} }

View File

@@ -1,12 +1,11 @@
using System.Globalization; using System.Globalization;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class UpperCaseNameRewriter : INameRewriter
{ {
public class UpperCaseNameRewriter : INameRewriter
{
private readonly CultureInfo _culture; private readonly CultureInfo _culture;
public UpperCaseNameRewriter(CultureInfo culture) => _culture = culture; public UpperCaseNameRewriter(CultureInfo culture) => _culture = culture;
public string RewriteName(string name) => name.ToUpper(_culture); public string RewriteName(string name) => name.ToUpper(_culture);
}
} }

View File

@@ -1,13 +1,12 @@
using System.Globalization; using System.Globalization;
namespace EFCore.NamingConventions.Internal namespace EFCore.NamingConventions.Internal;
public class UpperSnakeCaseNameRewriter : SnakeCaseNameRewriter
{ {
public class UpperSnakeCaseNameRewriter : SnakeCaseNameRewriter
{
private readonly CultureInfo _culture; private readonly CultureInfo _culture;
public UpperSnakeCaseNameRewriter(CultureInfo culture) : base(culture) => _culture = culture; public UpperSnakeCaseNameRewriter(CultureInfo culture) : base(culture) => _culture = culture;
public override string RewriteName(string name) => base.RewriteName(name).ToUpper(_culture); public override string RewriteName(string name) => base.RewriteName(name).ToUpper(_culture);
}
} }

View File

@@ -4,10 +4,10 @@ using JetBrains.Annotations;
using EFCore.NamingConventions.Internal; using EFCore.NamingConventions.Internal;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace Microsoft.EntityFrameworkCore namespace Microsoft.EntityFrameworkCore;
public static class NamingConventionsExtensions
{ {
public static class NamingConventionsExtensions
{
public static DbContextOptionsBuilder UseSnakeCaseNamingConvention( public static DbContextOptionsBuilder UseSnakeCaseNamingConvention(
[NotNull] this DbContextOptionsBuilder optionsBuilder , CultureInfo culture = null) [NotNull] this DbContextOptionsBuilder optionsBuilder , CultureInfo culture = null)
{ {
@@ -102,5 +102,4 @@ namespace Microsoft.EntityFrameworkCore
[NotNull] this DbContextOptionsBuilder<TContext> optionsBuilder, CultureInfo culture = null) [NotNull] this DbContextOptionsBuilder<TContext> optionsBuilder, CultureInfo culture = null)
where TContext : DbContext where TContext : DbContext
=> (DbContextOptionsBuilder<TContext>)UseCamelCaseNamingConvention((DbContextOptionsBuilder)optionsBuilder, culture); => (DbContextOptionsBuilder<TContext>)UseCamelCaseNamingConvention((DbContextOptionsBuilder)optionsBuilder, culture);
}
} }

View File

@@ -5,13 +5,13 @@ using EFCore.NamingConventions.Internal;
using JetBrains.Annotations; using JetBrains.Annotations;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace Microsoft.Extensions.DependencyInjection namespace Microsoft.Extensions.DependencyInjection;
/// <summary>
/// Extension methods for <see cref="Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
/// </summary>
public static class NamingConventionsServiceCollectionExtensions
{ {
/// <summary>
/// Extension methods for <see cref="Microsoft.Extensions.DependencyInjection.IServiceCollection" />.
/// </summary>
public static class NamingConventionsServiceCollectionExtensions
{
/// <summary> /// <summary>
/// <para> /// <para>
/// Adds the services required for applying naming conventions in Entity Framework Core. /// Adds the services required for applying naming conventions in Entity Framework Core.
@@ -38,5 +38,4 @@ namespace Microsoft.Extensions.DependencyInjection
return serviceCollection; return serviceCollection;
} }
}
} }