Tôi có một kịch bản mà tôi phải di chuyển tất cả dữ liệu của mình trong danh sách SharePoint 2010 (name = "VersionTestList") sang cơ sở dữ liệu máy chủ SQL. Vì phiên bản được bật trong danh sách, tôi cũng muốn di chuyển chi tiết phiên bản trước đó. Dù sao tôi đã có thể di chuyển mục mới nhất, nhưng tiếc là tôi không thể nhận được dữ liệu phiên bản trước đó. Tôi đã thử điều này bằng cách sử dụng mô hình đối tượng khách hàng và có thể nhận được các phiên bản, nhưng không thể có được ListItem của phiên bản tương ứng. Xin vui lòng tìm bên dưới mã mà tôi đã thử cho đến bây giờ và cho tôi một bàn tay trong việc giải quyết điều này.Lập trình ListItemVersion bằng cách sử dụng mô hình đối tượng khách hàng SharePoint 2010
Ngoài ra, tôi đang dùng phiên bản của ListItem như thế này:
string path = web.ServerRelativeUrl + "/Lists/VersionTestTable/1_.000";
File file = web.GetFileByServerRelativeUrl(path);
clientContext.Load(file, item=>item.ListItemAllFields);
FileVersionCollection versions = file.Versions;
clientContext.Load(versions);
oldVersions = clientContext.LoadQuery(versions.Where(v => v != null));
clientContext.ExecuteQuery();
toàn bộ mã của tôi là như thế này:
class Program
{
static void Main(string[] args)
{
GetVersionsUsingCOM();
}
public static void GetVersionsUsingCOM()
{
File file;
FileVersionCollection versions;
IEnumerable<Microsoft.SharePoint.Client.FileVersion> oldVersions;
ClientContext clientContext = new ClientContex("http://server:1200/test/Poc");
Web web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
string path = web.ServerRelativeUrl + "/Lists/VersionTestTable/1_.000";
file = web.GetFileByServerRelativeUrl(path);
clientContext.Load(file, item=>item.ListItemAllFields);
//clientContext.ExecuteQuery();
versions = file.Versions;
clientContext.Load(versions);
oldVersions = clientContext.LoadQuery(versions.Where(v => v != null));
clientContext.ExecuteQuery();
if (oldVersions != null)
{
foreach (Microsoft.SharePoint.Client.FileVersion _version in oldVersions)
{
int count=0;
Console.WriteLine(_version.CheckInComment);
Console.WriteLine("Version : {0}", _version.VersionLabel);
//// Working fine till here but unable to get the version details from version.Url
string versionItemUrl = web.ServerRelativeUrl +"/" + _version.Url;
File oldFile = web.GetFileByServerRelativeUrl(versionItemUrl);
clientContext.Load(oldFile, f=>f.ListItemAllFields);
clientContext.ExecuteQuery();
Console.WriteLine(oldFile.ListItemAllFields["Name"]);
count++;
}
oldVersions = null;
}
Console.ReadLine();
}
}
lớp mô hình đối tượng Server không cung cấp quá nhiều trợ giúp khi cố gắng sử dụng mô hình đối tượng khách hàng. –