diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs index 03b192c851..f7a4f27e5f 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs @@ -123,10 +123,17 @@ public static class EntityHelper return typeof(IEntity).IsAssignableFrom(type); } + public static Func IsValueObjectPredicate = type => typeof(ValueObject).IsAssignableFrom(type); + public static bool IsValueObject([NotNull] Type type) { Check.NotNull(type, nameof(type)); - return typeof(ValueObject).IsAssignableFrom(type); + return IsValueObjectPredicate(type); + } + + public static bool IsValueObject(object obj) + { + return obj != null && IsValueObject(obj.GetType()); } public static void CheckEntity([NotNull] Type type) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs index c887175655..801e772e26 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs @@ -93,7 +93,7 @@ public class EntityHistoryHelper : IEntityHistoryHelper, ITransientDependency } var entityId = GetEntityId(entity); - if (entityId == null && changeType != EntityChangeType.Created && !(entity is ValueObject)) + if (entityId == null && changeType != EntityChangeType.Created && !EntityHelper.IsValueObject(entity)) { return null; } @@ -151,7 +151,7 @@ public class EntityHistoryHelper : IEntityHistoryHelper, ITransientDependency return keys.JoinAsString(","); } - if (entityAsObj is ValueObject) + if (EntityHelper.IsValueObject(entityAsObj)) { return null; }