代码之家  ›  专栏  ›  技术社区  ›  Janis Veinbergs

spfileversioncollection-为什么版本按混合顺序排序?

  •  9
  • Janis Veinbergs  · 技术社区  · 14 年前

    spfileversioncollection和splistitemversioncollection版本控制在我看来不一致。不一致对我来说不是问题,但排序顺序是。

    SplistitemversionCollection公司

    我可以理解列表项的版本控制,因为它们按降序存储:

    SPContext.Current.ListItem.Versions.Count -> 5
    SPContext.Current.ListItem.Versions[0].VersionId -> 1026 (2.2 latest version)
    SPContext.Current.ListItem.Versions[1].VersionId -> 1025 (2.1)
    SPContext.Current.ListItem.Versions[2].VersionId -> 1024 (2.0)
    ...                                [4].VersionId ->      (oldest version)
    

    SPfileversionCollection

    但是,我无法理解如何保存文档库项的版本号:

    SPContext.Current.ListItem.File.Versions.Count -> 4
    SPContext.Current.ListItem.File.Versions[0].ID -> 512 (1.0 oldest one) 
    SPContext.Current.ListItem.File.Versions[1].ID -> 513 (1.1)
    SPContext.Current.ListItem.File.Versions[2].ID -> 1025 (2.1 latest version)
    SPContext.Current.ListItem.File.Versions[3].ID -> 1024 (2.0 (EDIT: IsCurrentVersion = True))
    

    它们不是上升的顺序,也不是下降的,而是混合的东西。

    有什么理由吗 让sharepoint团队决定存储这样的spfile版本?他们希望我编写自己的方法来获得最新版本吗?还是有内置的方法?

    注意:让我指出splistitem.file对于文档库项不为空。

    1 回复  |  直到 13 年前
        1
  •  6
  •   Janis Veinbergs    13 年前

    我想我可以在控制台应用程序中输出一些关于spfileversioncollection的信息,结果是:

    • 最后一个索引将保存当前(不是 起草但出版)版本 (spfileversion.iscurrentversion) 属性适用于此)
    • 0索引保存最旧版本
    • (last index-1)具有最后起草的版本(例如2.7)和(last index-2)包含2.6等。
    • spfile.versions.count=0,如果您刚刚上载了全新的文档(次要版本,在发布之前)。
    • 如果您继续上载新的文档版本,但尚未发布一个,则它们将添加到spfileversioncollection,但是在您发布一个版本之前,没有一个文档的iscurrentversion属性设置为true。

    啊,我有一个错误的假设,即最后一份文件草稿应算作最新的一份。当然,最后出版的版本是最新的!

    不过,要注意前后矛盾。