protected override IQueryable <EntityChange> GetEntityChanges <TEntity, TPrimaryKey>(TPrimaryKey id, DateTime snapshotTime) { string fullName = typeof(TEntity).FullName; var idJson = id.ToJsonString(); return(EntityChangeRepository.GetAll() //select all changes which created after snapshot time .Where(x => x.EntityTypeFullName == fullName && x.EntityId == idJson && x.ChangeTime > snapshotTime && x.ChangeType != EntityChangeType.Created) .OrderByDescending(x => x.ChangeTime)); }
protected override Task <TEntity> GetEntityById <TEntity, TPrimaryKey>(TPrimaryKey id) { return(EntityChangeRepository.GetDbContext() .Set <TEntity>().AsQueryable().FirstOrDefaultAsync(CreateEqualityExpressionForId <TEntity, TPrimaryKey>(id))); }