private string[] GetRelativePathSegments(Transaction tran, string id) {
Stack<string> pathSegments = new Stack<string>();
var value = tran.Select<string, DbCustomSerializer<MappedObject>>(MappedObjectsTable, id).Value;
if (value == null) {
return null;
}
MappedObject entry = value.Get;
pathSegments.Push(entry.Name);
while (entry.ParentId != null) {
id = entry.ParentId;
entry = tran.Select<string, DbCustomSerializer<MappedObject>>(MappedObjectsTable, id).Value.Get;
pathSegments.Push(entry.Name);
}
return pathSegments.ToArray();
}