Как загрузить документ с метаданными, чтобы избежать дублирования версий?

Я загружаю документ в библиотеку документов вместе с метаданными, используя объектную модель сервера в Sharepoint Foundation 2010. Я использую следующий код

// Initialize instance of existing site collection
                    using (SPSite site = new SPSite(siteUrl))
                    {
                        //Initailize instance of exiting web site (for e.g. Team Site)
                        using (SPWeb web = site.RootWeb)
                        {
                            //Get list with specified name in the existing web site
                            SPList list = web.Lists[libraryName];

                            //Get the collection of folders in the existing web site
                            String url = list.RootFolder.ServerRelativeUrl.ToString();
                            SPFolderCollection folders = web.GetFolder(url).SubFolders;

                            //Add new folder in the exiting collection of folders
                            SPFolder folder = folders.Add(folderName);

                            //SPFolder folder = web.GetFolder(siteUrl + "/" + libraryName + "/" + folderName);
                            //byte[] fileContents = System.IO.File.ReadAllBytes(@fileUrl);                                                     

                            //Add file in the newly added folder with overwrite
                            var overWrite = true;
                            SPFile file = folder.Files.Add(saveFileWithName, fileContents, overWrite);


                            //Get the list item of the newly added file
                            SPListItem listItem = file.ListItemAllFields;
                            //Assign values to the fields of newly added file
                            listItem["User_x0020_Name"] = userName;
                            listItem["Document_x0020_Type"] = documentType;
                            listItem["Check_x0020_Type"] = checkType;
                            //Update the list item with the newly added values to the fields
                            listItem.Update();

                            //Get the unique id of the newly added list item
                            documentGuid = listItem["UniqueId"].ToString();

                        }
                    }

Приведенный выше код работает нормально. В моей библиотеке документов включено управление версиями. Когда приведенный выше код запускается, он создает две версии в библиотеке документов. Один, когда он загружает документ с

SPFile file = folder.Files.Add(saveFileWithName, fileContents, overWrite);

и еще один, когда он добавляет значения в столбец User_x0020_Name, Document_x0020_Type и

Check_x0020_Type используя

listItem.Update();

Я хочу создать только одну версию, когда пользователь загружает документ, а также добавляет метаданные. Как это сделать? Не могли бы вы предоставить мне какой-либо код или ссылку, с помощью которой я могу решить вышеуказанную проблему?


person Shailesh Jaiswal    schedule 13.06.2013    source источник


Ответы (1)


Не изменяйте код, просто замените "listItem.Update();" на "listItem.SystemUpdate(false);", это обновит метаданные и не будет увеличивать номер версии.

person Jai_Bharat    schedule 26.02.2014