public static TrackingState ConvertState(EFCore.EntityState state) { switch (state) { case EFCore.EntityState.Detached: return(TrackingState.Unchanged); case EFCore.EntityState.Unchanged: return(TrackingState.Unchanged); case EFCore.EntityState.Added: return(TrackingState.Added); case EFCore.EntityState.Deleted: return(TrackingState.Deleted); case EFCore.EntityState.Modified: return(TrackingState.Modified); default: throw new ArgumentOutOfRangeException(nameof(state)); } #endregion }
protected static Microsoft.EntityFrameworkCore.EntityState GetEntityState(IDTPDomainModel.EntityState entityState) { Microsoft.EntityFrameworkCore.EntityState orientation = entityState switch { IDTPDomainModel.EntityState.Unchanged => Microsoft.EntityFrameworkCore.EntityState.Unchanged, IDTPDomainModel.EntityState.Added => Microsoft.EntityFrameworkCore.EntityState.Added, IDTPDomainModel.EntityState.Modified => Microsoft.EntityFrameworkCore.EntityState.Modified, IDTPDomainModel.EntityState.Deleted => Microsoft.EntityFrameworkCore.EntityState.Deleted, _ => Microsoft.EntityFrameworkCore.EntityState.Detached, }; //switch (entityState) //{ // case IDTPDomainModel.EntityState.Unchanged: // return Microsoft.EntityFrameworkCore.EntityState.Unchanged; // case IDTPDomainModel.EntityState.Added: // return Microsoft.EntityFrameworkCore.EntityState.Added; // case IDTPDomainModel.EntityState.Modified: // return Microsoft.EntityFrameworkCore.EntityState.Modified; // case IDTPDomainModel.EntityState.Deleted: // return Microsoft.EntityFrameworkCore.EntityState.Deleted; // default: // return Microsoft.EntityFrameworkCore.EntityState.Detached; //} return(orientation); }
private void MarkEntryAndOwnedChildren(EntityEntry entry, Microsoft.EntityFrameworkCore.EntityState state) { entry.State = state; // Handle owned entities - ( complex types). var ownedNavs = entry.Navigations.Where(n => n.Metadata.GetTargetType().IsOwned()); ownedNavs.ToList().ForEach(n => { var nEntry = GetEntityEntry(n.CurrentValue); nEntry.State = state; }); }
public static void LoanGraphStateShouldBe(this DbContext context, LoanBase loan, Microsoft.EntityFrameworkCore.EntityState state) { context.StateShouldBe(loan, state); context.StateShouldBe(loan.Lender, state); context.StateShouldBe(loan.LenderContact, state); }
public static void StateShouldBe(this DbContext context, object obj, Microsoft.EntityFrameworkCore.EntityState state) { context.Entry(obj).State.ShouldBe(state); }
/// <summary> /// Changes the state of an entity object when requested state differs. /// </summary> /// <typeparam name="TEntity">Type of entity</typeparam> /// <param name="entity">The entity instance</param> /// <param name="requestedState">The requested new state</param> /// <returns><c>true</c> if the state has been changed, <c>false</c> if current state did not differ from <paramref name="requestedState"/>.</returns> public static bool TryChangeState <TEntity>(this HookingDbContext ctx, TEntity entity, EfState requestedState) where TEntity : BaseEntity { var detectChanges = ctx.ChangeTracker.AutoDetectChangesEnabled; ctx.ChangeTracker.AutoDetectChangesEnabled = false; using (new ActionDisposable(() => ctx.ChangeTracker.AutoDetectChangesEnabled = detectChanges)) { // (perf) turning off autoDetectChanges prevents that ctx.Entry() performs change detection internally. var entry = ctx.Entry(entity); return(entry.TryChangeState(requestedState)); } }
/// <summary> /// Changes the state of an entity object when requested state differs. /// </summary> /// <typeparam name="TEntity">Type of entity</typeparam> /// <param name="entity">The entity instance</param> /// <param name="requestedState">The requested new state</param> /// <returns><c>true</c> if the state has been changed, <c>false</c> if current state did not differ from <paramref name="requestedState"/>.</returns> public static bool TryChangeState <TEntity>(this HookingDbContext ctx, TEntity entity, EfState requestedState) where TEntity : BaseEntity { //Console.WriteLine("ChangeState ORIGINAL"); var entry = ctx.Entry(entity); if (entry.State != requestedState) { // Only change state when requested state differs, // because EF internally sets all properties to modified // if necessary, even when requested state equals current state. entry.State = requestedState; return(true); } return(false); }
public void SetRootEntityState(T entity, State state) { _context.Entry(entity).State = state; }
private EntityState MapToInternal(EfEntityState state) { var internalState = (EntityState)Enum.Parse(typeof(EntityState), state.ToString()); return(internalState); }