From a90ee7e1a08f143b71bca6b0136641aa5e697c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 10 Aug 2020 23:17:58 +0300 Subject: [PATCH] Fix ambigious overload problem for MapEfCore. --- .../EfCoreObjectExtensionManagerExtensions.cs | 39 +++++++++++++++++-- ...reObjectExtensionPropertyInfoExtensions.cs | 18 ++++++++- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionManagerExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionManagerExtensions.cs index 06f360be6c..cf6d0e1368 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionManagerExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionManagerExtensions.cs @@ -8,10 +8,41 @@ namespace Volo.Abp.ObjectExtending { public static class EfCoreObjectExtensionManagerExtensions { + public static ObjectExtensionManager MapEfCoreProperty( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] string propertyName) + where TEntity : IHasExtraProperties, IEntity + { + return objectExtensionManager.MapEfCoreProperty( + typeof(TEntity), + typeof(TProperty), + propertyName + ); + } + + public static ObjectExtensionManager MapEfCoreProperty( + [NotNull] this ObjectExtensionManager objectExtensionManager, + [NotNull] Type entityType, + [NotNull] Type propertyType, + [NotNull] string propertyName) + { + Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); + + return objectExtensionManager.AddOrUpdateProperty( + entityType, + propertyType, + propertyName, + options => + { + options.MapEfCore(); + } + ); + } + public static ObjectExtensionManager MapEfCoreProperty( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] string propertyName, - [CanBeNull] Action propertyBuildAction = null) + [CanBeNull] Action propertyBuildAction) where TEntity : IHasExtraProperties, IEntity { return objectExtensionManager.MapEfCoreProperty( @@ -27,7 +58,7 @@ namespace Volo.Abp.ObjectExtending [NotNull] Type entityType, [NotNull] Type propertyType, [NotNull] string propertyName, - [CanBeNull] Action propertyBuildAction = null) + [CanBeNull] Action propertyBuildAction) { Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); @@ -47,7 +78,7 @@ namespace Volo.Abp.ObjectExtending public static ObjectExtensionManager MapEfCoreProperty( [NotNull] this ObjectExtensionManager objectExtensionManager, [NotNull] string propertyName, - [CanBeNull] Action entityTypeAndPropertyBuildAction = null) + [CanBeNull] Action entityTypeAndPropertyBuildAction) where TEntity : IHasExtraProperties, IEntity { return objectExtensionManager.MapEfCoreProperty( @@ -63,7 +94,7 @@ namespace Volo.Abp.ObjectExtending [NotNull] Type entityType, [NotNull] Type propertyType, [NotNull] string propertyName, - [CanBeNull] Action entityTypeAndPropertyBuildAction = null) + [CanBeNull] Action entityTypeAndPropertyBuildAction) { Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionPropertyInfoExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionPropertyInfoExtensions.cs index 6e0c1ccc22..9fb466c4cd 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionPropertyInfoExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/ObjectExtending/EfCoreObjectExtensionPropertyInfoExtensions.cs @@ -9,10 +9,24 @@ namespace Volo.Abp.ObjectExtending { public const string EfCorePropertyConfigurationName = "EfCoreMapping"; + [NotNull] + public static ObjectExtensionPropertyInfo MapEfCore( + [NotNull] this ObjectExtensionPropertyInfo propertyExtension) + { + Check.NotNull(propertyExtension, nameof(propertyExtension)); + + propertyExtension.Configuration[EfCorePropertyConfigurationName] = + new ObjectExtensionPropertyInfoEfCoreMappingOptions( + propertyExtension + ); + + return propertyExtension; + } + [NotNull] public static ObjectExtensionPropertyInfo MapEfCore( [NotNull] this ObjectExtensionPropertyInfo propertyExtension, - [CanBeNull] Action propertyBuildAction = null) + [CanBeNull] Action propertyBuildAction) { Check.NotNull(propertyExtension, nameof(propertyExtension)); @@ -28,7 +42,7 @@ namespace Volo.Abp.ObjectExtending [NotNull] public static ObjectExtensionPropertyInfo MapEfCore( [NotNull] this ObjectExtensionPropertyInfo propertyExtension, - [CanBeNull] Action entityTypeAndPropertyBuildAction = null) + [CanBeNull] Action entityTypeAndPropertyBuildAction) { Check.NotNull(propertyExtension, nameof(propertyExtension));