public virtual void AddAll(ILink <T> link) { int n = link.Length; reserveSpace(n); if (link is IPArray <T> ) { IPArray <T> src = (IPArray <T>)link; for (int i = 0, j = used; i < n; i++, j++) { arr[j] = src.GetOid(i); } } else { for (int i = 0, j = used; i < n; i++, j++) { arr[j] = db.MakePersistent(link.GetRaw(i)); } } used += n; }