public IEnumerable <T> ToPoco <T>() where T : new()
        {
            var accessors = GetAccessors <T>();

            if (Edits == null)
            {
                return(new T[0]);
            }

            return(Edits.Select(r =>
            {
                if (r == null)
                {
                    throw new ApplicationException("Received row can't be null");
                }
                if (r.Length != accessors.Length)
                {
                    throw new ApplicationException(string.Format("Received row should have {0} columns. {1} received", accessors.Length, r.Length));
                }
                var res = new T();
                for (int i = 0; i < r.Length; i++)
                {
                    var a = accessors[i];
                    object o = r[i].ToType(null, true, a.PropertyType);
                    a.SetValue(res, o);
                }
                return res;
            }));
        }