From 81db50a034cc8547cc22f77b7121ba445f1e6d58 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 31 May 2021 15:48:16 +0800 Subject: [PATCH 1/7] Fallback to the EntityFrameworkCore project if EntityFrameworkCore.DbMigrations project does not exists for the application template. --- .../ProjectBuilding/TemplateProjectBuilder.cs | 6 ++ .../Templates/App/AppTemplateBase.cs | 56 ++++++++++--- ...eSwitchEntityFrameworkCoreToMongoDbStep.cs | 84 +++++++++++++------ 3 files changed, 111 insertions(+), 35 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index 0f224a20cb..52eb6fe5de 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -5,6 +5,7 @@ using System; using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; +using NuGet.Versioning; using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Licensing; using Volo.Abp.Cli.ProjectBuilding.Analyticses; @@ -111,6 +112,11 @@ namespace Volo.Abp.Cli.ProjectBuilding args ); + if (context.Template is AppTemplateBase appTemplateBase) + { + appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) >= new SemanticVersion(4, 4, 0); + } + TemplateProjectBuildPipelineBuilder.Build(context).Execute(); if (!templateInfo.DocumentUrl.IsNullOrEmpty()) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index d515253659..d1f4940e26 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -9,9 +9,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { public abstract class AppTemplateBase : TemplateInfo { + public bool HasDbMigrations { get; set; } = false; + protected AppTemplateBase(string templateName) : base(templateName, DatabaseProvider.EntityFrameworkCore, UiFramework.Mvc) { + } public static bool IsAppTemplate(string templateName) @@ -40,20 +43,35 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App return steps; } - private static void ConfigureTenantSchema(ProjectBuildContext context, List steps) + private void ConfigureTenantSchema(ProjectBuildContext context, List steps) { if (context.BuildArgs.ExtraProperties.ContainsKey("separate-tenant-schema")) { - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations")); - steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.EntityFrameworkCore.SeparateDbMigrations", "MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations")); + if (HasDbMigrations) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations")); + steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.EntityFrameworkCore.SeparateDbMigrations", "MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations")); + } + else + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore")); + steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.EntityFrameworkCoreWithSeparateDbContext", "MyCompanyName.MyProjectName.EntityFrameworkCore")); + } } else { - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.SeparateDbMigrations")); + if (HasDbMigrations) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.SeparateDbMigrations")); + } + else + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCoreWithSeparateDbContext")); + } } } - private static void SwitchDatabaseProvider(ProjectBuildContext context, List steps) + private void SwitchDatabaseProvider(ProjectBuildContext context, List steps) { if (context.BuildArgs.DatabaseProvider == DatabaseProvider.MongoDb) { @@ -62,9 +80,17 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App if (context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore) { - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests")); + if (HasDbMigrations) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests")); + } + else + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.EntityFrameworkCore.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests")); + } } else { @@ -380,13 +406,21 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); } - private static void RemoveMigrations(ProjectBuildContext context, List steps) + private void RemoveMigrations(ProjectBuildContext context, List steps) { if (string.IsNullOrWhiteSpace(context.BuildArgs.Version) || SemanticVersion.Parse(context.BuildArgs.Version) > new SemanticVersion(4,1,99)) { - steps.Add(new RemoveFolderStep("/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations")); - steps.Add(new RemoveFolderStep("/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/TenantMigrations")); + if (HasDbMigrations) + { + steps.Add(new RemoveFolderStep("/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations")); + steps.Add(new RemoveFolderStep("/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/TenantMigrations")); + } + else + { + steps.Add(new RemoveFolderStep("/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations")); + steps.Add(new RemoveFolderStep("/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/TenantMigrations")); + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs index 309d0a1552..ea1423d766 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs @@ -1,6 +1,4 @@ using System; -using System.Linq; -using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.ProjectBuilding.Building; namespace Volo.Abp.Cli.ProjectBuilding.Templates.App @@ -14,7 +12,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -23,7 +21,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -37,7 +35,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -46,7 +44,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -60,7 +58,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -69,7 +67,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -83,7 +81,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -92,7 +90,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -106,7 +104,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -115,7 +113,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -129,7 +127,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -138,7 +136,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -152,7 +150,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj", - "EntityFrameworkCore.Tests", + new[] {"EntityFrameworkCore.Tests"}, "MongoDB.Tests" ); @@ -201,7 +199,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyCompanyName.MyProjectName.Web.Public.csproj", - "EntityFrameworkCore.DbMigrations", + new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, "MongoDB" ); @@ -210,7 +208,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyProjectNameWebPublicModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - "MyProjectNameEntityFrameworkCoreDbMigrationsModule", + new []{"MyProjectNameEntityFrameworkCoreDbMigrationsModule","MyProjectNameEntityFrameworkCoreModule"}, "MyProjectNameMongoDbModule" ); @@ -226,6 +224,15 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App string targetProjectFilePath, string oldReference, string newReference) + { + ChangeProjectReference(context, targetProjectFilePath, new[] {oldReference}, newReference); + } + + private void ChangeProjectReference( + ProjectBuildContext context, + string targetProjectFilePath, + string[] oldReferences, + string newReference) { var file = context.FindFile(targetProjectFilePath); @@ -239,15 +246,27 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App var lines = file.GetLines(); for (var i = 0; i < lines.Length; i++) { - if (lines[i].Contains("ProjectReference") && lines[i].Contains(oldReference)) + if (lines[i].Contains("ProjectReference")) { - lines[i] = lines[i].Replace(oldReference, newReference); - file.SetLines(lines); - return; + var changed = false; + foreach (var oldReference in oldReferences) + { + if (lines[i].Contains(oldReference)) + { + lines[i] = lines[i].Replace(oldReference, newReference); + file.SetLines(lines); + changed = true; + } + } + + if (changed) + { + return; + } } } - throw new ApplicationException($"Could not find the '{oldReference}' reference in the project '{targetProjectFilePath}'!"); + throw new ApplicationException($"Could not find the '{string.Join(",", oldReferences)}' reference in the project '{targetProjectFilePath}'!"); } private void ChangeNamespaceAndKeyword( @@ -257,6 +276,17 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App string newNamespace, string oldKeyword, string newKeyword) + { + ChangeNamespaceAndKeyword(context, targetModuleFilePath, oldNamespace, newNamespace, new[] {oldKeyword}, newKeyword); + } + + private void ChangeNamespaceAndKeyword( + ProjectBuildContext context, + string targetModuleFilePath, + string oldNamespace, + string newNamespace, + string[] oldKeywords, + string newKeyword) { var file = context.FindFile(targetModuleFilePath); @@ -275,9 +305,15 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { lines[i] = $"using {newNamespace};"; } - else if (lines[i].Contains(oldKeyword)) + else { - lines[i] = lines[i].Replace(oldKeyword, newKeyword); + foreach (var oldKeyword in oldKeywords) + { + if (lines[i].Contains(oldKeyword)) + { + lines[i] = lines[i].Replace(oldKeyword, newKeyword); + } + } } } From f783151a13bf2378d72b6e06a30f0449402cd261 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 31 May 2021 15:58:17 +0800 Subject: [PATCH 2/7] Enhance. --- .../Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 2 +- .../App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index d1f4940e26..39ca735829 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -9,7 +9,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { public abstract class AppTemplateBase : TemplateInfo { - public bool HasDbMigrations { get; set; } = false; + public bool HasDbMigrations { get; set; } protected AppTemplateBase(string templateName) : base(templateName, DatabaseProvider.EntityFrameworkCore, UiFramework.Mvc) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs index ea1423d766..31f714be4d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs @@ -150,7 +150,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj", - new[] {"EntityFrameworkCore.Tests"}, + "EntityFrameworkCore.Tests", "MongoDB.Tests" ); @@ -256,6 +256,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App lines[i] = lines[i].Replace(oldReference, newReference); file.SetLines(lines); changed = true; + break; } } @@ -312,6 +313,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App if (lines[i].Contains(oldKeyword)) { lines[i] = lines[i].Replace(oldKeyword, newKeyword); + break; } } } From 88aa8bcf51236ce6c793b4dd7bbd340c711c3fd8 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 31 May 2021 17:07:11 +0800 Subject: [PATCH 3/7] Remove EntityFrameworkCore.DbMigrations project from the solution. --- .../MyCompanyName.MyProjectName.sln | 7 --- ...anyName.MyProjectName.Blazor.Server.csproj | 2 +- .../MyProjectNameBlazorModule.cs | 2 +- ...ompanyName.MyProjectName.DbMigrator.csproj | 4 +- .../MyProjectNameDbMigratorModule.cs | 2 +- .../Users/AppUser.cs | 63 ------------------- ...meEntityFrameworkCoreDbMigrationsModule.cs | 16 ----- .../MyProjectNameMigrationsDbContext.cs | 48 -------------- ...me.EntityFrameworkCore.DbMigrations.csproj | 21 ------- ...meworkCoreMyProjectNameDbSchemaMigrator.cs | 6 +- .../MyProjectNameDbContext.cs | 60 ++++++++---------- .../MyProjectNameDbContextFactory.cs} | 8 +-- ...ectNameDbContextModelCreatingExtensions.cs | 22 ------- .../20210531084225_Initial.Designer.cs} | 6 +- .../Migrations/20210531084225_Initial.cs} | 0 .../MyProjectNameDbContextModelSnapshot.cs} | 6 +- ...e.MyProjectName.EntityFrameworkCore.csproj | 7 +++ ...panyName.MyProjectName.HttpApi.Host.csproj | 2 +- .../MyProjectNameHttpApiHostModule.cs | 2 +- ...e.MyProjectName.HttpApi.HostWithIds.csproj | 2 +- .../MyProjectNameHttpApiHostModule.cs | 2 +- ...nyName.MyProjectName.IdentityServer.csproj | 2 +- .../MyProjectNameIdentityServerModule.cs | 2 +- .../MongoDb/MyProjectNameMongoDbContext.cs | 18 +++--- .../MyCompanyName.MyProjectName.Web.csproj | 2 +- .../MyProjectNameWebModule.cs | 2 +- ...rojectNameEntityFrameworkCoreTestModule.cs | 6 +- .../Samples/SampleRepositoryTests.cs | 6 +- ...ojectName.EntityFrameworkCore.Tests.csproj | 2 +- .../MongoDb/Samples/SampleRepositoryTests.cs | 6 +- 30 files changed, 78 insertions(+), 256 deletions(-) delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Users/AppUser.cs delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreDbMigrationsModule.cs delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContext.cs delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj rename templates/app/aspnet-core/src/{MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations => MyCompanyName.MyProjectName.EntityFrameworkCore}/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs (86%) rename templates/app/aspnet-core/src/{MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs => MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextFactory.cs} (76%) delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextModelCreatingExtensions.cs rename templates/app/aspnet-core/src/{MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.Designer.cs => MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.Designer.cs} (99%) rename templates/app/aspnet-core/src/{MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.cs => MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.cs} (100%) rename templates/app/aspnet-core/src/{MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/MyProjectNameMigrationsDbContextModelSnapshot.cs => MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs} (99%) diff --git a/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln b/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln index 5136e6c039..c899ac4b70 100644 --- a/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln +++ b/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln @@ -21,8 +21,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.MongoDB", "src\MyCompanyName.MyProjectName.MongoDB\MyCompanyName.MyProjectName.MongoDB.csproj", "{E3444355-D47E-431E-BDD0-DD3A7113B2AE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations", "src\MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations\MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj", "{0372FA84-C517-4EB3-9A9F-B9ACAC0CA5E0}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Domain.Shared", "src\MyCompanyName.MyProjectName.Domain.Shared\MyCompanyName.MyProjectName.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Application.Contracts", "src\MyCompanyName.MyProjectName.Application.Contracts\MyCompanyName.MyProjectName.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}" @@ -91,10 +89,6 @@ Global {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Debug|Any CPU.Build.0 = Debug|Any CPU {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Release|Any CPU.Build.0 = Release|Any CPU - {0372FA84-C517-4EB3-9A9F-B9ACAC0CA5E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0372FA84-C517-4EB3-9A9F-B9ACAC0CA5E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0372FA84-C517-4EB3-9A9F-B9ACAC0CA5E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0372FA84-C517-4EB3-9A9F-B9ACAC0CA5E0}.Release|Any CPU.Build.0 = Release|Any CPU {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.Build.0 = Debug|Any CPU {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -175,7 +169,6 @@ Global {50B2631D-129C-47B3-A587-029CCD6099BC} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} {5F1B28C6-8D0C-4155-92D0-252F7EA5F674} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} {E3444355-D47E-431E-BDD0-DD3A7113B2AE} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {0372FA84-C517-4EB3-9A9F-B9ACAC0CA5E0} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {42F719ED-8413-4895-B5B4-5AB56079BC66} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {520659C8-C734-4298-A3DA-B539DB9DFC0B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {4164BDF7-F527-4E85-9CE6-E3C2D7426A27} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 41b06f939f..dd2c98bf78 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -23,7 +23,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs index 1120f5ab0e..2695f04952 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs @@ -46,7 +46,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server { [DependsOn( typeof(MyProjectNameApplicationModule), - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(MyProjectNameHttpApiModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAutofacModule), diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index 471cab6cda..2466e0d019 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -28,9 +28,9 @@ - + - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs index ed9e67651c..44e0157e68 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs @@ -7,7 +7,7 @@ namespace MyCompanyName.MyProjectName.DbMigrator { [DependsOn( typeof(AbpAutofacModule), - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(MyProjectNameApplicationContractsModule) )] public class MyProjectNameDbMigratorModule : AbpModule diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Users/AppUser.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Users/AppUser.cs deleted file mode 100644 index 1b5b3996ee..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Users/AppUser.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using Volo.Abp.Domain.Entities.Auditing; -using Volo.Abp.Users; - -namespace MyCompanyName.MyProjectName.Users -{ - /* This entity shares the same table/collection ("AbpUsers" by default) with the - * IdentityUser entity of the Identity module. - * - * - You can define your custom properties into this class. - * - You never create or delete this entity, because it is Identity module's job. - * - You can query users from database with this entity. - * - You can update values of your custom properties. - */ - public class AppUser : FullAuditedAggregateRoot, IUser - { - #region Base properties - - /* These properties are shared with the IdentityUser entity of the Identity module. - * Do not change these properties through this class. Instead, use Identity module - * services (like IdentityUserManager) to change them. - * So, this properties are designed as read only! - */ - - public virtual Guid? TenantId { get; private set; } - - public virtual string UserName { get; private set; } - - public virtual string Name { get; private set; } - - public virtual string Surname { get; private set; } - - public virtual string Email { get; private set; } - - public virtual bool EmailConfirmed { get; private set; } - - public virtual string PhoneNumber { get; private set; } - - public virtual bool PhoneNumberConfirmed { get; private set; } - - #endregion - - /* Add your own properties here. Example: - * - * public string MyProperty { get; set; } - * - * If you add a property and using the EF Core, remember these; - * - * 1. Update MyProjectNameDbContext.OnModelCreating - * to configure the mapping for your new property - * 2. Update MyProjectNameEfCoreEntityExtensionMappings to extend the IdentityUser entity - * and add your new property to the migration. - * 3. Use the Add-Migration to add a new database migration. - * 4. Run the .DbMigrator project (or use the Update-Database command) to apply - * schema change to the database. - */ - - private AppUser() - { - - } - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreDbMigrationsModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreDbMigrationsModule.cs deleted file mode 100644 index ed9d6dfb08..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreDbMigrationsModule.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Modularity; - -namespace MyCompanyName.MyProjectName.EntityFrameworkCore -{ - [DependsOn( - typeof(MyProjectNameEntityFrameworkCoreModule) - )] - public class MyProjectNameEntityFrameworkCoreDbMigrationsModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAbpDbContext(); - } - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContext.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContext.cs deleted file mode 100644 index 13e6fdac87..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContext.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Volo.Abp.AuditLogging.EntityFrameworkCore; -using Volo.Abp.BackgroundJobs.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.FeatureManagement.EntityFrameworkCore; -using Volo.Abp.Identity; -using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; -using Volo.Abp.PermissionManagement.EntityFrameworkCore; -using Volo.Abp.SettingManagement.EntityFrameworkCore; -using Volo.Abp.TenantManagement.EntityFrameworkCore; - -namespace MyCompanyName.MyProjectName.EntityFrameworkCore -{ - /* This DbContext is only used for database migrations. - * It is not used on runtime. See MyProjectNameDbContext for the runtime DbContext. - * It is a unified model that includes configuration for - * all used modules and your application. - */ - public class MyProjectNameMigrationsDbContext : AbpDbContext - { - public MyProjectNameMigrationsDbContext(DbContextOptions options) - : base(options) - { - - } - - protected override void OnModelCreating(ModelBuilder builder) - { - base.OnModelCreating(builder); - - /* Include modules to your migration db context */ - - builder.ConfigurePermissionManagement(); - builder.ConfigureSettingManagement(); - builder.ConfigureBackgroundJobs(); - builder.ConfigureAuditLogging(); - builder.ConfigureIdentity(); - builder.ConfigureIdentityServer(); - builder.ConfigureFeatureManagement(); - builder.ConfigureTenantManagement(); - - /* Configure your own tables/entities inside the ConfigureMyProjectName method */ - - builder.ConfigureMyProjectName(); - } - } -} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj deleted file mode 100644 index 26ae8ce6c3..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - net5.0 - MyCompanyName.MyProjectName - - - - - - - - - runtime; build; native; contentfiles; analyzers - compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native - - - - diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs similarity index 86% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs index 752e0e18b3..45fb944a73 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs @@ -20,16 +20,16 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore public async Task MigrateAsync() { - /* We intentionally resolving the MyProjectNameMigrationsDbContext + /* We intentionally resolving the MyProjectNameDbContext * from IServiceProvider (instead of directly injecting it) * to properly get the connection string of the current tenant in the * current scope. */ await _serviceProvider - .GetRequiredService() + .GetRequiredService() .Database .MigrateAsync(); } } -} \ No newline at end of file +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs index e1478119be..43baa25f5a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs @@ -1,29 +1,21 @@ using Microsoft.EntityFrameworkCore; -using MyCompanyName.MyProjectName.Users; +using Volo.Abp.AuditLogging.EntityFrameworkCore; +using Volo.Abp.BackgroundJobs.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore.Modeling; -using Volo.Abp.Identity; -using Volo.Abp.Users.EntityFrameworkCore; +using Volo.Abp.FeatureManagement.EntityFrameworkCore; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.TenantManagement.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.EntityFrameworkCore { - /* This is your actual DbContext used on runtime. - * It includes only your entities. - * It does not include entities of the used modules, because each module has already - * its own DbContext class. If you want to share some database tables with the used modules, - * just create a structure like done for AppUser. - * - * Don't use this DbContext for database migrations since it does not contain tables of the - * used modules (as explained above). See MyProjectNameMigrationsDbContext for migrations. - */ [ConnectionStringName("Default")] public class MyProjectNameDbContext : AbpDbContext { - public DbSet Users { get; set; } - /* Add DbSet properties for your Aggregate Roots / Entities here. - * Also map them inside MyProjectNameDbContextModelCreatingExtensions.ConfigureMyProjectName */ public MyProjectNameDbContext(DbContextOptions options) @@ -36,23 +28,25 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore { base.OnModelCreating(builder); - /* Configure the shared tables (with included modules) here */ - - builder.Entity(b => - { - b.ToTable(AbpIdentityDbProperties.DbTablePrefix + "Users"); //Sharing the same table "AbpUsers" with the IdentityUser - - b.ConfigureByConvention(); - b.ConfigureAbpUser(); - - /* Configure mappings for your additional properties - * Also see the MyProjectNameEfCoreEntityExtensionMappings class - */ - }); - - /* Configure your own tables/entities inside the ConfigureMyProjectName method */ - - builder.ConfigureMyProjectName(); + /* Include modules to your migration db context */ + + builder.ConfigurePermissionManagement(); + builder.ConfigureSettingManagement(); + builder.ConfigureBackgroundJobs(); + builder.ConfigureAuditLogging(); + builder.ConfigureIdentity(); + builder.ConfigureIdentityServer(); + builder.ConfigureFeatureManagement(); + builder.ConfigureTenantManagement(); + + /* Configure your own tables/entities inside here */ + + //builder.Entity(b => + //{ + // b.ToTable(MyProjectNameConsts.DbTablePrefix + "YourEntities", MyProjectNameConsts.DbSchema); + // b.ConfigureByConvention(); //auto configure for the base class props + // //... + //}); } } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextFactory.cs similarity index 76% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextFactory.cs index 6d08ae674f..139a723f34 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextFactory.cs @@ -7,18 +7,18 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore { /* This class is needed for EF Core console commands * (like Add-Migration and Update-Database commands) */ - public class MyProjectNameMigrationsDbContextFactory : IDesignTimeDbContextFactory + public class MyProjectNameDbContextFactory : IDesignTimeDbContextFactory { - public MyProjectNameMigrationsDbContext CreateDbContext(string[] args) + public MyProjectNameDbContext CreateDbContext(string[] args) { MyProjectNameEfCoreEntityExtensionMappings.Configure(); var configuration = BuildConfiguration(); - var builder = new DbContextOptionsBuilder() + var builder = new DbContextOptionsBuilder() .UseSqlServer(configuration.GetConnectionString("Default")); - return new MyProjectNameMigrationsDbContext(builder.Options); + return new MyProjectNameDbContext(builder.Options); } private static IConfigurationRoot BuildConfiguration() diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextModelCreatingExtensions.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextModelCreatingExtensions.cs deleted file mode 100644 index dbc3805f25..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContextModelCreatingExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Volo.Abp; - -namespace MyCompanyName.MyProjectName.EntityFrameworkCore -{ - public static class MyProjectNameDbContextModelCreatingExtensions - { - public static void ConfigureMyProjectName(this ModelBuilder builder) - { - Check.NotNull(builder, nameof(builder)); - - /* Configure your own tables/entities inside here */ - - //builder.Entity(b => - //{ - // b.ToTable(MyProjectNameConsts.DbTablePrefix + "YourEntities", MyProjectNameConsts.DbSchema); - // b.ConfigureByConvention(); //auto configure for the base class props - // //... - //}); - } - } -} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.Designer.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.Designer.cs similarity index 99% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.Designer.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.Designer.cs index 8c8077902d..48b67399a1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.Designer.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.Designer.cs @@ -10,8 +10,8 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { - [DbContext(typeof(MyProjectNameMigrationsDbContext))] - [Migration("20210324094537_Initial")] + [DbContext(typeof(MyProjectNameDbContext))] + [Migration("20210531084225_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -20,7 +20,7 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("ProductVersion", "5.0.4") + .HasAnnotation("ProductVersion", "5.0.6") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.cs similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/20210324094537_Initial.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20210531084225_Initial.cs diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/MyProjectNameMigrationsDbContextModelSnapshot.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs similarity index 99% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/MyProjectNameMigrationsDbContextModelSnapshot.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs index c4ab591bd1..3612ae96a4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/Migrations/MyProjectNameMigrationsDbContextModelSnapshot.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -9,8 +9,8 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { - [DbContext(typeof(MyProjectNameMigrationsDbContext))] - partial class MyProjectNameMigrationsDbContextModelSnapshot : ModelSnapshot + [DbContext(typeof(MyProjectNameDbContext))] + partial class MyProjectNameDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { @@ -18,7 +18,7 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("ProductVersion", "5.0.4") + .HasAnnotation("ProductVersion", "5.0.6") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj index 35238c49f0..32f6d5171b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj @@ -20,4 +20,11 @@ + + + runtime; build; native; contentfiles; analyzers + compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index ec64f8b082..88f8e020b7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -23,7 +23,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index fb7435d447..88e16a4d3a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -35,7 +35,7 @@ namespace MyCompanyName.MyProjectName typeof(AbpCachingStackExchangeRedisModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), typeof(MyProjectNameApplicationModule), - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAspNetCoreSerilogModule), typeof(AbpSwashbuckleModule) )] diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index b24dc50c4e..7710accedd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -23,7 +23,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs index cd696da65f..aceaa36d7f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs @@ -36,7 +36,7 @@ namespace MyCompanyName.MyProjectName typeof(AbpAutofacModule), typeof(AbpAspNetCoreMultiTenancyModule), typeof(MyProjectNameApplicationModule), - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpAccountWebIdentityServerModule), diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 56210d82ff..06cbb12cc3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -44,7 +44,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index 843cf53e47..f28e487b1b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -40,7 +40,7 @@ namespace MyCompanyName.MyProjectName typeof(AbpAccountWebIdentityServerModule), typeof(AbpAccountApplicationModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAspNetCoreSerilogModule) )] public class MyProjectNameIdentityServerModule : AbpModule diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbContext.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbContext.cs index b2f8334f92..c034bf5768 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbContext.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbContext.cs @@ -1,6 +1,4 @@ -using MongoDB.Driver; -using MyCompanyName.MyProjectName.Users; -using Volo.Abp.Data; +using Volo.Abp.Data; using Volo.Abp.MongoDB; namespace MyCompanyName.MyProjectName.MongoDB @@ -8,18 +6,18 @@ namespace MyCompanyName.MyProjectName.MongoDB [ConnectionStringName("Default")] public class MyProjectNameMongoDbContext : AbpMongoDbContext { - public IMongoCollection Users => Collection(); + /* Add mongo collections here. Example: + * public IMongoCollection Questions => Collection(); + */ protected override void CreateModel(IMongoModelBuilder modelBuilder) { base.CreateModel(modelBuilder); - modelBuilder.Entity(b => - { - /* Sharing the same "AbpUsers" collection - * with the Identity module's IdentityUser class. */ - b.CollectionName = "AbpUsers"; - }); + //builder.Entity(b => + //{ + // //... + //}); } } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 56ec66098c..6814029396 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -39,7 +39,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index ad2fbad18d..7658f8e867 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -43,7 +43,7 @@ namespace MyCompanyName.MyProjectName.Web [DependsOn( typeof(MyProjectNameHttpApiModule), typeof(MyProjectNameApplicationModule), - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAutofacModule), typeof(AbpIdentityWebModule), typeof(AbpSettingManagementWebModule), diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs index ca28d11863..147d01a098 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs @@ -11,7 +11,7 @@ using Volo.Abp.Modularity; namespace MyCompanyName.MyProjectName.EntityFrameworkCore { [DependsOn( - typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), + typeof(MyProjectNameEntityFrameworkCoreModule), typeof(MyProjectNameTestBaseModule), typeof(AbpEntityFrameworkCoreSqliteModule) )] @@ -47,11 +47,11 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore var connection = new SqliteConnection("Data Source=:memory:"); connection.Open(); - var options = new DbContextOptionsBuilder() + var options = new DbContextOptionsBuilder() .UseSqlite(connection) .Options; - using (var context = new MyProjectNameMigrationsDbContext(options)) + using (var context = new MyProjectNameDbContext(options)) { context.GetService().CreateTables(); } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs index 3fdaa28ea7..fb69be6a1e 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs @@ -1,10 +1,10 @@ using Microsoft.EntityFrameworkCore; -using MyCompanyName.MyProjectName.Users; using Shouldly; using System; using System.Linq; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; +using Volo.Abp.Identity; using Xunit; namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Samples @@ -17,11 +17,11 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Samples [Collection(MyProjectNameTestConsts.CollectionDefinitionName)] public class SampleRepositoryTests : MyProjectNameEntityFrameworkCoreTestBase { - private readonly IRepository _appUserRepository; + private readonly IRepository _appUserRepository; public SampleRepositoryTests() { - _appUserRepository = GetRequiredService>(); + _appUserRepository = GetRequiredService>(); } [Fact] diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index dcbb7fe3a6..fc14ea5a7f 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs index 0c45d0a52e..7d3f8ebc47 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs @@ -1,9 +1,9 @@ using System; using System.Threading.Tasks; -using MyCompanyName.MyProjectName.Users; using MongoDB.Driver.Linq; using Shouldly; using Volo.Abp.Domain.Repositories; +using Volo.Abp.Identity; using Xunit; namespace MyCompanyName.MyProjectName.MongoDB.Samples @@ -16,11 +16,11 @@ namespace MyCompanyName.MyProjectName.MongoDB.Samples [Collection(MyProjectNameTestConsts.CollectionDefinitionName)] public class SampleRepositoryTests : MyProjectNameMongoDbTestBase { - private readonly IRepository _appUserRepository; + private readonly IRepository _appUserRepository; public SampleRepositoryTests() { - _appUserRepository = GetRequiredService>(); + _appUserRepository = GetRequiredService>(); } [Fact] From 5fd766e4eb790ba9a6270ac2b4a8deffe64ee1ee Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 31 May 2021 17:36:14 +0800 Subject: [PATCH 4/7] Add GetEntityFrameworkCoreProjectFolderPath. --- .../Data/MyProjectNameDbMigrationService.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index ef1aed5718..d9e2a7f406 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -144,14 +144,14 @@ namespace MyCompanyName.MyProjectName.Data private bool DbMigrationsProjectExists() { - var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); + var dbMigrationsProjectFolder = GetEntityFrameworkCoreProjectFolderPath(); return dbMigrationsProjectFolder != null; } private bool MigrationsFolderExists() { - var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); + var dbMigrationsProjectFolder = GetEntityFrameworkCoreProjectFolderPath(); return Directory.Exists(Path.Combine(dbMigrationsProjectFolder, "Migrations")); } @@ -175,7 +175,7 @@ namespace MyCompanyName.MyProjectName.Data } var procStartInfo = new ProcessStartInfo(fileName, - $"{argumentPrefix} \"abp create-migration-and-run-migrator \"{GetDbMigrationsProjectFolderPath()}\"\"" + $"{argumentPrefix} \"abp create-migration-and-run-migrator \"{GetEntityFrameworkCoreProjectFolderPath()}\"\"" ); try @@ -188,7 +188,7 @@ namespace MyCompanyName.MyProjectName.Data } } - private string GetDbMigrationsProjectFolderPath() + private string GetEntityFrameworkCoreProjectFolderPath() { var slnDirectoryPath = GetSolutionDirectoryPath(); @@ -200,7 +200,7 @@ namespace MyCompanyName.MyProjectName.Data var srcDirectoryPath = Path.Combine(slnDirectoryPath, "src"); return Directory.GetDirectories(srcDirectoryPath) - .FirstOrDefault(d => d.EndsWith(".DbMigrations")); + .FirstOrDefault(d => d.EndsWith(".EntityFrameworkCore")); } private string GetSolutionDirectoryPath() From b486cf155a3d6faef794a97fa855dba2fa3477f5 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 31 May 2021 17:57:04 +0800 Subject: [PATCH 5/7] Use hasDbMigrations in AppTemplateSwitchEntityFrameworkCoreToMongoDbStep. --- .../Templates/App/AppTemplateBase.cs | 2 +- ...eSwitchEntityFrameworkCoreToMongoDbStep.cs | 89 ++++++------------- 2 files changed, 29 insertions(+), 62 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 39ca735829..048addf59f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -75,7 +75,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { if (context.BuildArgs.DatabaseProvider == DatabaseProvider.MongoDb) { - steps.Add(new AppTemplateSwitchEntityFrameworkCoreToMongoDbStep()); + steps.Add(new AppTemplateSwitchEntityFrameworkCoreToMongoDbStep(HasDbMigrations)); } if (context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs index 31f714be4d..88dba26ab1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs @@ -5,6 +5,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPipelineStep { + private readonly bool _hasDbMigrations; + + public AppTemplateSwitchEntityFrameworkCoreToMongoDbStep(bool hasDbMigrations) + { + _hasDbMigrations = hasDbMigrations; + } + public override void Execute(ProjectBuildContext context) { //MyCompanyName.MyProjectName.Web @@ -12,7 +19,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -21,7 +28,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -35,7 +42,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -44,7 +51,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -58,7 +65,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -67,7 +74,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -81,7 +88,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -90,7 +97,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -104,7 +111,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -113,7 +120,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -127,7 +134,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -136,7 +143,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -199,7 +206,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ChangeProjectReference( context, "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyCompanyName.MyProjectName.Web.Public.csproj", - new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, + _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); @@ -208,7 +215,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyProjectNameWebPublicModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", - new []{"MyProjectNameEntityFrameworkCoreDbMigrationsModule","MyProjectNameEntityFrameworkCoreModule"}, + _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", "MyProjectNameMongoDbModule" ); @@ -224,15 +231,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App string targetProjectFilePath, string oldReference, string newReference) - { - ChangeProjectReference(context, targetProjectFilePath, new[] {oldReference}, newReference); - } - - private void ChangeProjectReference( - ProjectBuildContext context, - string targetProjectFilePath, - string[] oldReferences, - string newReference) { var file = context.FindFile(targetProjectFilePath); @@ -246,28 +244,15 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App var lines = file.GetLines(); for (var i = 0; i < lines.Length; i++) { - if (lines[i].Contains("ProjectReference")) + if (lines[i].Contains("ProjectReference") && lines[i].Contains(oldReference)) { - var changed = false; - foreach (var oldReference in oldReferences) - { - if (lines[i].Contains(oldReference)) - { - lines[i] = lines[i].Replace(oldReference, newReference); - file.SetLines(lines); - changed = true; - break; - } - } - - if (changed) - { - return; - } + lines[i] = lines[i].Replace(oldReference, newReference); + file.SetLines(lines); + return; } } - throw new ApplicationException($"Could not find the '{string.Join(",", oldReferences)}' reference in the project '{targetProjectFilePath}'!"); + throw new ApplicationException($"Could not find the '{oldReference}' reference in the project '{targetProjectFilePath}'!"); } private void ChangeNamespaceAndKeyword( @@ -277,17 +262,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App string newNamespace, string oldKeyword, string newKeyword) - { - ChangeNamespaceAndKeyword(context, targetModuleFilePath, oldNamespace, newNamespace, new[] {oldKeyword}, newKeyword); - } - - private void ChangeNamespaceAndKeyword( - ProjectBuildContext context, - string targetModuleFilePath, - string oldNamespace, - string newNamespace, - string[] oldKeywords, - string newKeyword) { var file = context.FindFile(targetModuleFilePath); @@ -306,16 +280,9 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { lines[i] = $"using {newNamespace};"; } - else + else if (lines[i].Contains(oldKeyword)) { - foreach (var oldKeyword in oldKeywords) - { - if (lines[i].Contains(oldKeyword)) - { - lines[i] = lines[i].Replace(oldKeyword, newKeyword); - break; - } - } + lines[i] = lines[i].Replace(oldKeyword, newKeyword); } } From 220315a833697ce37bc28d3a72f60413042e29d1 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 1 Jun 2021 16:53:12 +0800 Subject: [PATCH 6/7] Update TemplateProjectBuilder.cs --- .../Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index 52eb6fe5de..309e96839a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -114,7 +114,7 @@ namespace Volo.Abp.Cli.ProjectBuilding if (context.Template is AppTemplateBase appTemplateBase) { - appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) >= new SemanticVersion(4, 4, 0); + appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) < new SemanticVersion(4, 4, 0); } TemplateProjectBuildPipelineBuilder.Build(context).Execute(); From e8d287183eef35523e4def20f064ec13d267a4a2 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 11 Jun 2021 23:35:36 +0800 Subject: [PATCH 7/7] Make version comparison compatible with RC. --- .../Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index 309e96839a..7b4790bdad 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -114,7 +114,7 @@ namespace Volo.Abp.Cli.ProjectBuilding if (context.Template is AppTemplateBase appTemplateBase) { - appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) < new SemanticVersion(4, 4, 0); + appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) < new SemanticVersion(4, 3, 99); } TemplateProjectBuildPipelineBuilder.Build(context).Execute();