Сохранение объекта в хранилище: dataObject.Properties.Set("i_folder_id") против dataObject.Relationships.Add()
Я использую уровень производительности DFS.NET v6.7.
У меня есть переменные dataObject
а также repoFolderPath
, Я хочу сохранить dataObject
внутри папки, указанной путем repoFolderPath
,
Я могу сделать это двумя способами:
Установив i_folder_id:
dataObject.Properties.Set<String[]>("i_folder_id", new String[] { repoFolderPath } );
Используя DFS .NET API:
ObjectPath objectPath = new ObjectPath(repoFolderPath); ObjectIdentity linkFolderIdentity = new ObjectIdentity(objectPath, repositoryName); ReferenceRelationship linkFolderRelationship = new ReferenceRelationship(); linkFolderRelationship.Name = Relationship.RELATIONSHIP_FOLDER; linkFolderRelationship.Target = linkFolderIdentity; linkFolderRelationship.TargetRole = Relationship.ROLE_PARENT; dataObject.Relationships.Add(linkFolderRelationship);
В. Какая разница, если я выберу одно над другим, кроме того факта, что при первом подходе я могу использовать i_folder_id
и во втором подходе я могу использовать repoFolderPath
? Будет ли второй набор строк в конечном итоге привести к настройке i_folder_id
, или будете делать что-то еще в дополнение к этому?
Очевидно, для экономии dataObject
в хранилище я делаю следующее в обоих случаях:
DataPackage dataPackage = new DataPackage(dataObject);
OperationOptions operationOptions = null;
DataPackage resultPackage = objectService.Create(dataPackage, operationOptions);
1 ответ
Я на 99% уверен, что в этом случае, когда вы создаете новый объект, нет разницы между этими двумя подходами, но ради вашего призвания не используйте первый подход.
Я провел некоторое исследование относительно типов отношений в моем недавно установленном репозитории. Не существует типа связи, который бы указывал на какую-либо связь между папкой и объектами, связанными с ней. Это только подтверждает мое предположение, что нет ничего другого с привязкой объекта к папкам, кроме атрибута i_folder_id.
Что касается связывания объекта с несколькими папками - вы просто повторяете строки, которые вы написали для первой папки.