public EntityEntry SetEntityState <TCollectionBase>(TCollectionBase entity, EntityEntryState state) where TCollectionBase : class
        {
            Check.NotNull(entity, nameof(entity));

            var entry = GetEntry(entity);

            if (entry != null)
            {
                if (ReferenceEquals(entry.Entity, entity))
                {
                    if ((entry.State == EntityEntryState.Added && state == EntityEntryState.Deleted) || state == EntityEntryState.Detached)
                    {
                        entry.State = EntityEntryState.Detached;
                        RemoveEntry <TCollectionBase>(entry);
                    }
                    else
                    {
                        entry.State = state;
                    }
                }
                else if (state != EntityEntryState.Detached)
                {
                    RemoveEntry <TCollectionBase>(entry);
                    entry = new EntityEntry(entity, typeof(TCollectionBase), state);
                    AddEntry <TCollectionBase>(entry);
                }
            }
            else if (state != EntityEntryState.Detached)
            {
                entry = new EntityEntry(entity, typeof(TCollectionBase), state);
                AddEntry <TCollectionBase>(entry);
            }

            return(entry);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates a new <see cref="EntityEntry{TEntity}"/> with the specified entity and state information.
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="state"></param>
        public EntityEntry(TEntity entity, EntityEntryState state)
        {
            State  = state;
            Entity = entity;

            if (state == EntityEntryState.NoChanges)
            {
                Refresh();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a new <see cref="EntityEntry"/> with the specified entity and state information.
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="state"></param>
        public EntityEntry(object entity, EntityEntryState state)
        {
            State      = state;
            Entity     = entity;
            EntityType = entity.GetType();

            if (state == EntityEntryState.NoChanges)
            {
                OriginalValues = Entity.ToBsonDocument();
            }
        }
Exemplo n.º 4
0
        public void Update(TEntity entity, EntityEntryState state)
        {
            var entry = GetEntry(entity);

            if (entry != null)
            {
                if (entry.Entity.Equals(entity))
                {
                    entry.State = state;
                }
                else
                {
                    Entries.Remove(entry);
                    Entries.Add(new EntityEntry <TEntity>(entity, state));
                }
            }
            else
            {
                Entries.Add(new EntityEntry <TEntity>(entity, state));
            }
        }
Exemplo n.º 5
0
 public void AddEntriesByCallNumber(int callCount, IEnumerable <IEntityEntry> entries, EntityEntryState state = EntityEntryState.Modified)
 {
     changedAtCall[callCount - 1] = entries;
 }
Exemplo n.º 6
0
 public void AddEntitiesByCallNumber(int callCount, IEnumerable <object> entities, EntityEntryState state = EntityEntryState.Modified)
 {
     changedAtCall[callCount - 1] = entities.Select(e => new EntityEntryDouble(e, state));
 }
Exemplo n.º 7
0
 public ContextUtilitiesDouble(IEnumerable <object> changedEntities, EntityEntryState state = EntityEntryState.Modified)
 {
     changedAtCall[0] = changedEntities.Select(e => new EntityEntryDouble(e, state));
 }
 public void Update(EntityBucket <TGroup, TSubEntity> entity, EntityEntryState state)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 9
0
		public EntityEntryDouble(object entity, EntityEntryState state)
		{
			this.Entity = entity;
			this.State = state;
		}
Exemplo n.º 10
0
 public EntityEntry(EntityEntryState state, IEntity entity)
 {
     State  = state;
     Entity = entity;
 }
Exemplo n.º 11
0
 public static IEntityEntry AsEntry(this object entity, EntityEntryState state = EntityEntryState.Modified)
 {
     return new EntityEntryDouble(entity, state);
 }
Exemplo n.º 12
0
 public static IEntityEntry AsEntry(this object entity, EntityEntryState state = EntityEntryState.Modified)
 {
     return(new EntityEntryDouble(entity, state));
 }
Exemplo n.º 13
0
 public EntityEntryDouble(object entity, EntityEntryState state)
 {
     Entity = entity;
     State  = state;
 }
Exemplo n.º 14
0
 /// <summary>
 /// Creates a new <see cref="EntityEntry"/> with the specified entity, type and state information.
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="entityType"></param>
 /// <param name="state"></param>
 public EntityEntry(object entity, Type entityType, EntityEntryState state) : this(entity, state)
 {
     EntityType = entityType;
 }