public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default){ foreach(var entry in base.ChangeTracker.Entries<BaseDateEntity>() .Where(q => q.State == EntityState.Added || q.State == EntityState.Modified)) { var dateTime = DateTime.Now; var persianCalendar = new PersianCalendar(); var year = persianCalendar.GetYear(dateTime); var month = persianCalendar.GetMonth(dateTime).ToString("D2"); ; var day = persianCalendar.GetDayOfMonth(dateTime).ToString("D2"); var hour = persianCalendar.GetHour(dateTime).ToString("D2"); ; var minute = persianCalendar.GetMinute(dateTime).ToString("D2"); if (entry.State == EntityState.Added) { entry.Entity.CreatedDateTime = dateTime; entry.Entity.CreatedTime = $"{hour}:{minute}"; entry.Entity.CreatedDate = int.Parse($"{year}{month}{day}"); } if (entry.State == EntityState.Modified) { entry.Entity.LastModifiedDate = int.Parse($"{year}{month}{day}"); entry.Entity.LastModifiedTime = $"{hour}:{minute}"; } } return base.SaveChangesAsync(cancellationToken);}
I have overrided the Savechanges method of EFCore.It does not add the entity to the database.When I change the last line to
var res = base.SaveChangesAsync(cancellationToken).Result;return Task.FromResult(res);
It worksWhat is the reason ?