From 7fa67b16366a4c52251858d3af656aa57581c5d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 29 Mar 2020 19:20:59 +0300 Subject: [PATCH] Change object mapping style for the app startup template. --- .../MyProjectNameDomainModule.cs | 6 ++++++ .../MyProjectNameDomainObjectExtensions.cs} | 15 ++++++++------- .../Users/AppUser.cs | 2 +- .../MyProjectNameMigrationsDbContextFactory.cs | 2 +- .../EntityFrameworkCore/MyProjectNameDbContext.cs | 2 +- ...MyProjectNameEfCoreEntityExtensionMappings.cs} | 7 ++++++- .../MyProjectNameEntityFrameworkCoreModule.cs | 2 +- .../MongoDb/MyProjectNameMongoDbModule.cs | 5 ----- 8 files changed, 24 insertions(+), 17 deletions(-) rename templates/app/aspnet-core/src/{MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameEntityExtensions.cs => MyCompanyName.MyProjectName.Domain/ObjectExtending/MyProjectNameDomainObjectExtensions.cs} (50%) rename templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/{MyProjectNameEntityExtensions.cs => MyProjectNameEfCoreEntityExtensionMappings.cs} (72%) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs index 26e2639524..84e7f88791 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs @@ -1,4 +1,5 @@ using MyCompanyName.MyProjectName.MultiTenancy; +using MyCompanyName.MyProjectName.ObjectExtending; using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; using Volo.Abp.FeatureManagement; @@ -27,6 +28,11 @@ namespace MyCompanyName.MyProjectName )] public class MyProjectNameDomainModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + MyProjectNameDomainObjectExtensions.Configure(); + } + public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameEntityExtensions.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/ObjectExtending/MyProjectNameDomainObjectExtensions.cs similarity index 50% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameEntityExtensions.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/ObjectExtending/MyProjectNameDomainObjectExtensions.cs index 79107d9ce6..2fcd167216 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameEntityExtensions.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/ObjectExtending/MyProjectNameDomainObjectExtensions.cs @@ -1,10 +1,8 @@ -using Volo.Abp.Identity; -using Volo.Abp.ObjectExtending; -using Volo.Abp.Threading; +using Volo.Abp.Threading; -namespace MyCompanyName.MyProjectName.MongoDB +namespace MyCompanyName.MyProjectName.ObjectExtending { - public static class MyProjectNameEntityExtensions + public static class MyProjectNameDomainObjectExtensions { private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); @@ -12,8 +10,11 @@ namespace MyCompanyName.MyProjectName.MongoDB { OneTimeRunner.Run(() => { - /* You can extension properties to entities + /* You can configure extension properties to entities or other object types * defined in the depended modules. + * + * If you are using EF Core and want to map the entity extension properties to new + * table fields in the database, then configure them in the MyProjectNameEfCoreEntityExtensionMappings * * Example: * @@ -21,7 +22,7 @@ namespace MyCompanyName.MyProjectName.MongoDB * .AddOrUpdateProperty("Title"); * * See the documentation for more: - * https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities + * https://docs.abp.io/en/abp/latest/Object-Extensions */ }); } 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 index 6fafd6b76d..cd5c8dbb3d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Users/AppUser.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Users/AppUser.cs @@ -48,7 +48,7 @@ namespace MyCompanyName.MyProjectName.Users * * 1. update MyProjectNameDbContext.OnModelCreating * to configure the mapping for your new property - * 2. Update MyProjectNameEntityExtensions to extend the IdentityUser entity + * 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 diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs index 7af1004924..62b57c1cc3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/MyProjectNameMigrationsDbContextFactory.cs @@ -11,7 +11,7 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore { public MyProjectNameMigrationsDbContext CreateDbContext(string[] args) { - MyProjectNameEntityExtensions.Configure(); + MyProjectNameEfCoreEntityExtensionMappings.Configure(); var configuration = BuildConfiguration(); 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 99c2585c75..e1478119be 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 @@ -46,7 +46,7 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore b.ConfigureAbpUser(); /* Configure mappings for your additional properties - * Also see the MyProjectNameEntityExtensions class + * Also see the MyProjectNameEfCoreEntityExtensionMappings class */ }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityExtensions.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEfCoreEntityExtensionMappings.cs similarity index 72% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityExtensions.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEfCoreEntityExtensionMappings.cs index af1076ebda..12fb8eefc6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityExtensions.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEfCoreEntityExtensionMappings.cs @@ -4,7 +4,7 @@ using Volo.Abp.Threading; namespace MyCompanyName.MyProjectName.EntityFrameworkCore { - public static class MyProjectNameEntityExtensions + public static class MyProjectNameEfCoreEntityExtensionMappings { private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); @@ -15,6 +15,11 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore /* You can configure entity extension properties for the * entities defined in the used modules. * + * The properties defined here becomes table fields. + * If you want to use the ExtraProperties dictionary of the entity + * instead of creating a new field, then define the property in the + * MyProjectNameDomainObjectExtensions class. + * * Example: * * ObjectExtensionManager.Instance diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs index 4c231d0b98..0b4258dd18 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs @@ -29,7 +29,7 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore { public override void PreConfigureServices(ServiceConfigurationContext context) { - MyProjectNameEntityExtensions.Configure(); + MyProjectNameEfCoreEntityExtensionMappings.Configure(); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs index c502d0f924..5d3bfabab5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs @@ -24,11 +24,6 @@ namespace MyCompanyName.MyProjectName.MongoDB )] public class MyProjectNameMongoDbModule : AbpModule { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - MyProjectNameEntityExtensions.Configure(); - } - public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddMongoDbContext(options =>