У меня есть 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));
}
}
}
в чем проблема? как я могу решить эту проблему?