Сохранение объекта в хранилище: dataObject.Properties.Set("i_folder_id") против dataObject.Relationships.Add()

Я использую уровень производительности DFS.NET v6.7.

У меня есть переменные dataObject а также repoFolderPath, Я хочу сохранить dataObject внутри папки, указанной путем repoFolderPath,

Я могу сделать это двумя способами:

  1. Установив i_folder_id:

    dataObject.Properties.Set<String[]>("i_folder_id", new String[] { repoFolderPath } );
    
  2. Используя 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.

Что касается связывания объекта с несколькими папками - вы просто повторяете строки, которые вы написали для первой папки.

Другие вопросы по тегам