public static void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (e.Entry.Entity is Article article) { ParseMarkdown(article); } }
private static void OnEntityTrackedHandler(object sender, EntityTrackedEventArgs args) { if (args.Entry.Entity is BaseEntity entity && args.Entry.State == EntityState.Added && !args.FromQuery) { entity.CreatedOn = DateTime.UtcNow; } }
private void Tracked(object sender, EntityTrackedEventArgs e) { int keyValue = GetKeyValue(e.Entry.Entity); Console.WriteLine($@"Newly tracked {e.Entry.Entity.GetType()}, " + $"{((e.FromQuery) ? "From" : "Not From")} Query, Key = {keyValue} as {e.Entry.State}"); }
void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is IEntityDate entity) { entity.Created = DateTime.Now; } }
private void ChangeTrackerOnTracked(object sender, EntityTrackedEventArgs e) { if (e.Entry.Entity is EntityBase) { } //throw new NotImplementedException(); }
private void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is BaseEntity entity) { entity.CreatedOn = DateTime.UtcNow; } }
void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is IHasCreation entity) { entity.Created_at = DateTime.UtcNow; } }
void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery) { ProcessLastModified(e.Entry); } }
void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is IEntity entity) { entity.DateCreatedUtc = DateTime.UtcNow; entity.DateLastModifiedUtc = DateTime.UtcNow; } }
public static void OnMatchupAdded(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is Matchup matchup) { matchup.Roster1.MatchupId = matchup.MatchupId; matchup.Roster2.MatchupId = matchup.MatchupId; } }
private static void ChangeTrackerOnTracked(object sender, EntityTrackedEventArgs e) { if (e.FromQuery) { return; } UpdateTimestampableObjects(e.Entry); }
private void ChangeTracker_Tracked(object?sender, EntityTrackedEventArgs e) { var source = (e.FromQuery) ? "Database" : "Code"; if (e.Entry.Entity is Car c) { Console.WriteLine($"Car entry {c.PetName} was added from {source}"); } }
private void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (e.Entry.State == EntityState.Added && e.Entry.Entity is DbEntity entity) { entity.Id = Guid.NewGuid(); entity.CreatedAt = DateTime.UtcNow; entity.LastModifiedAt = DateTime.UtcNow; } }
// Auto Model CreateTime EditTime updates void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is IEntityDate entity) { entity.CreateTime = DateTimeOffset.Now; } if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is ApplicationUser user) { user.RegisterTime = DateTimeOffset.Now; } }
public static void OnObjectMaterialized(object sender, EntityTrackedEventArgs trackedEvent) { if (trackedEvent.FromQuery && trackedEvent.Entry.Entity is IBaseEntity entity) { entity.ModelState = ModelState.Unchanged; var originalValues = BuildOriginalValues(entity.GetType(), trackedEvent.Entry.OriginalValues); entity.SetOriginalValues(originalValues); } }
private void Tracked(object sender, EntityTrackedEventArgs args) { var trackingGuid = Guid.NewGuid(); _trackingGuids[args.Entry.Entity] = trackingGuid; _connection.InvokeAsync( nameof(DaBeeHub.ChangeState), new DaBeeEntityEntry(args.Entry, trackingGuid), EntityState.Detached, args.FromQuery); IntroduceDelay(); }
protected virtual void FillExtraPropertiesForTrackedEntities(EntityTrackedEventArgs e) { var entityType = e.Entry.Metadata.ClrType; if (entityType == null) { return; } if (!(e.Entry.Entity is IHasExtraProperties entity)) { return; } if (!e.FromQuery) { return; } var objectExtension = ObjectExtensionManager.Instance.GetOrNull(entityType); if (objectExtension == null) { return; } foreach (var property in objectExtension.GetProperties()) { if (!property.IsMappedToFieldForEfCore()) { continue; } /* Checking "currentValue != null" has a good advantage: * Assume that you we already using a named extra property, * then decided to create a field (entity extension) for it. * In this way, it prevents to delete old value in the JSON and * updates the field on the next save! */ var currentValue = e.Entry.CurrentValues[property.Name]; if (currentValue != null) { entity.ExtraProperties[property.Name] = currentValue; } } }
protected virtual void FillExtraPropertiesForTrackedEntities(EntityTrackedEventArgs e) { var entityType = e.Entry.Metadata.ClrType; if (entityType == null) { return; } if (!(e.Entry.Entity is IHasExtraProperties entity)) { return; } if (!e.FromQuery) { return; } var objectExtension = ObjectExtensionManager.Instance.GetOrNull(entityType); if (objectExtension == null) { return; } foreach (var property in objectExtension.GetProperties()) { if (!property.IsMappedToFieldForEfCore()) { continue; } /* 检查“currentValue != null“将会非常有用: * 假设实体拥有额外的信息, * 并创建了一个字段用于存储额外的信息 * 实体更新的时候不会删除Json中的旧值 */ var currentValue = e.Entry.CurrentValues[property.Name]; if (currentValue != null) { entity.ExtraProperties[property.Name] = currentValue; } } }
protected virtual void OnEntityCreate(object sender, EntityTrackedEventArgs e) { var entity = e.Entry.Entity; var entityType = entity.GetType(); var implementsIEntity = entityType.GetInterfaces().Any(i => i.GetGenericTypeDefinition() == typeof(IEntity <>)); if (!e.FromQuery && e.Entry.State == EntityState.Added && implementsIEntity) { var modifiedProperty = entityType.GetProperty(nameof(IEntity <object> .EditAt)); modifiedProperty.SetValue(entity, DateTime.Now); var createdAtProperty = entityType.GetProperty(nameof(IEntity <object> .CreatedAt)); createdAtProperty.SetValue(entity, DateTime.Now); } }
/// <summary>Tracks the auditable entity asynchronous.</summary> /// <param name="argument">The <see cref="EntityTrackedEventArgs"/> instance containing the event data.</param> /// <returns></returns> protected async Task <bool> TrackAuditableEntityAsync([NotNull] EntityTrackedEventArgs argument) { bool b = false; switch (argument.Entry.State) { case EntityState.Detached: case EntityState.Unchanged: break; case EntityState.Deleted: case EntityState.Modified: case EntityState.Added: b = await TrackStatePrivateAsync(argument.Entry, argument.Entry.State); break; } return(b); }
private void OnEntityTracked(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is Review review) { review.Date = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); } else if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is Vendor vendor) { vendor.DateCreated = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); } else if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is Post post) { post.Date = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); } else if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is Message msg) { msg.Date = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); } }
private void ChangeTracker_Tracked(object sender, EntityTrackedEventArgs e) { DateTime now = DateTime.Now; if (e.Entry.Entity is IEntityDate entity) { switch (e.Entry.State) { case EntityState.Added: entity.DatePublished = now; entity.DateModified = now; //For future use //entity.CreatedBy = CurrentUser.GetUsername(); //entity.UpdatedBy = CurrentUser.GetUsername(); break; case EntityState.Modified: //Update(entity); Entry(entity).Property(x => x.DatePublished).IsModified = false; entity.DateModified = now; break; } } }
private void OnEntityTracked(object sender, EntityTrackedEventArgs e) { }
protected virtual void ChangeTracker_Tracked(object sender, EntityTrackedEventArgs e) { FillExtraPropertiesForTrackedEntities(e); PublishEventsForTrackedEntity(e.Entry); }
void OnTracked(object sender, EntityTrackedEventArgs e) { // if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is "EntidadeComAtributoLGPD") //entity.Created = DateTime.Now; }
void OnEntityCreated(object sender, EntityTrackedEventArgs e) { if (!e.FromQuery && e.Entry.State == EntityState.Added && e.Entry.Entity is DomainEntity entity) { } }
private void ChangeTracker_Tracked(object sender, EntityTrackedEventArgs e) { Console.WriteLine($"Marked for Tracking: {e.Entry.Entity}"); }