Тип объекта «ActiveCode» настроен на использование стратегии отслеживания изменений «ChangingAndChangedNotifications», но не реализует необходимый - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть Aggreagte ActivationCode, в этом Агрегате у меня есть ValueObject ActiveCode.

Я меняю ChangeTrackerStrategy на modelBuilder.HasChangeTrackingStrategy(ChangeTrackingStrategy.ChangingAndChangedNotifications);

, но он показывает мне эту ошибку:

'Тип объекта «ActiveCode» настроен на использование стратегии отслеживания изменений «ChangingAndChangedNotifications», но не реализует требуемый интерфейс «INotifyPropertyChanged».'

ValueObject:

 public class ActiveCode : ValueObject<ActiveCode>
{
    [Column(nameof(Code))]
    public int Code { get; set; }

    public ActiveCode()
    {
        GenerationCode();
    }

    public void GenerationCode()
    {
        Random random = new Random();
        Code = random.Next(100000, 999999);
    }
    protected override IEnumerable<object> GetEqualityComponents()
    {
        yield return Code;
    }
}

и это Aggregate:

 public class ActivationCode : Aggregates, IAggregateMarker
    {
        #region Backing Filed
        private ActiveCode _activetionCode;
        private Guid _userId;
        private CodeType _codeType;
        public string _hashCode;
        public DateTimeOffset _dateExpire;
        #endregion
        #region Properties
        public ActiveCode ActivetionCode { get => _activetionCode; set => SetWithNotify(value, ref _activetionCode); }
        public Guid UserId { get => _userId; set => SetWithNotify(value, ref _userId); }
        public CodeType CodeType { get => _codeType; set => SetWithNotify(value, ref _codeType); }
        public string HashCode { get => _hashCode; set => SetWithNotify(value, ref _hashCode); }
        public DateTimeOffset DateExpire { get => _dateExpire; set => SetWithNotify(value, ref _dateExpire); }
    }

Это агрегаты:

    public abstract class AggregateNotification : INotifyPropertyChanged, INotifyPropertyChanging
{
    public event PropertyChangedEventHandler PropertyChanged;
    public event PropertyChangingEventHandler PropertyChanging;
    protected void SetWithNotify<T>(T value, ref T field,
    [CallerMemberName] string propertyName = "")
    {
        if (!Object.Equals(field, value))
        {
            PropertyChanging?.Invoke(this,
            new PropertyChangingEventArgs(propertyName));
            field = value; //
            PropertyChanged?.Invoke(this,
            new PropertyChangedEventArgs(propertyName));
        }
    }
}

в чем проблема? как я могу решить эту проблему?

...