<code> 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);
}
</code>
<code> 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);
}
</code>
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 works
What is the reason ?
New contributor
Kayhan.Kashi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
0