public void Add <T>(T entity) where T : class { if (!IsAttached(entity)) { EntityEntries.Add(new EntityEntry(entity, EntityState.Added)); } }
public IQueryable <T> FindAll <T>() where T : class { return(CreateQueryable(EntityEntries .Where(x => (x.State & EntityState.Added) == 0 && (x.State & EntityState.Detached) == 0) .Select(x => x.Instance) .OfType <T>())); }
public T Find <T>(object id) where T : class { return(EntityEntries .Select(x => x.Instance) .OfType <T>() .FirstOrDefault(x => HasEntityId(x, id))); }
public Task <T[]> FindAllAsync <T>(CancellationToken cancellationToken = default(CancellationToken)) where T : class { return(Task.FromResult(EntityEntries .Where(x => (x.State & EntityState.Added) == 0 && (x.State & EntityState.Detached) == 0) .Select(x => x.Instance) .OfType <T>() .ToArray())); }
public virtual void Remove <T>(T entity) where T : class { EntityEntry entry = EntityEntries.FirstOrDefault(x => x.Instance == entity); if (entry != null) { entry.State = EntityState.Deleted; } }
public IDbEntityEntry <T> Entry <T>(T entity) where T : class { var entry = EntityEntries.FirstOrDefault(x => x.Instance == entity); if (entry == null) { EntityEntries.Add(new EntityEntry(entity, EntityState.Detached)); } return(new InMemoryDbEntityEntry <T>(entry)); }
public IDbEntityEntry Entry(object entity) { var entry = EntityEntries.FirstOrDefault(x => x.Instance == entity); if (entry == null) { EntityEntries.Add(new EntityEntry(entity, EntityState.Detached)); } return(new InMemoryDbEntityEntry(entry)); }
public void SetEntityState <T>(T entity, EntityState state) where T : class { EntityEntry entry = EntityEntries.FirstOrDefault(x => x.Instance == entity); if (entry == null) { EntityEntries.Add(new EntityEntry(entity, state)); } else { entry.State = state; } }
public virtual void SaveChanges() { foreach (EntityEntry entry in EntityEntries.ToList()) { if ((entry.State & EntityState.Added) != 0 || (entry.State & EntityState.Modified) != 0) { entry.State = EntityState.Unchanged; } else if ((entry.State & EntityState.Deleted) != 0) { EntityEntries.Remove(entry); } } }
public IEnumerable <IDbEntityEntry> Entries() { return(EntityEntries.Select(x => new InMemoryDbEntityEntry(x))); }
public Task <T> FirstOrDefaultAsync <T>(Expression <Func <T, bool> > predicate, CancellationToken cancellationToken = default(CancellationToken)) where T : class { return(Task.FromResult(EntityEntries.Select(x => x.Instance).OfType <T>().FirstOrDefault(predicate.Compile()))); }
public T First <T>(Expression <Func <T, bool> > predicate) where T : class { return(EntityEntries.Select(x => x.Instance).OfType <T>().First(predicate.Compile())); }
public Task <T> GetAsync <T>(object id) where T : class { return(Task.FromResult(EntityEntries.Select(x => x.Instance).OfType <T>().First(x => HasEntityId(x, id)))); }
public bool IsAttached <T>(T entity) where T : class { return(EntityEntries.Any(x => x.Instance == entity && (x.State & EntityState.Detached) != 0)); }
public EntityState GetEntityState <T>(T entity) where T : class { return(EntityEntries.FirstOrDefault(x => x.Instance == entity) ?.State ?? EntityState.Detached); }
public IEnumerable <T> FindAllWithAdded <T>() where T : class { return(EntityEntries .Select(x => x.Instance) .OfType <T>()); }