Las versiones SPFileVersionCollection y SPListItemVersionCollection me parecen inconsistentes. La inconsistencia no sería un problema para mí, pero el orden de clasificación sí lo es.SPFileVersionCollection: ¿por qué las versiones se ordenan en orden mixto?
SPListItemVersionCollection
puedo entender versiones de ListItems ya que se almacenan en orden descendente:
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
Sin embargo no puedo entender cómo los números de versión se guardan para una biblioteca de documentos artículo:
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))
No están en orden ascendente, ni descendente, sino algo mezclado.
¿Hay alguna razón para que el equipo de SharePoint decida almacenar versiones de SPFile como esa? ¿Y esperan que escriba mi propio método para obtener la última versión o hay una versión integrada para eso?
Una nota: Permítame señalar que SPListItem.File no es nulo para los elementos de la biblioteca de documentos.
tus dos últimos puntos me parecen contradictorios: si 'Count' es 0 hasta que se publique uno, ¿cómo pueden agregarse a' SPFileVersionCollection'? – Nacht
@Nacht gracias por el comentario. Mucho tiempo desde que esto se ha probado, demasiado vago para ir a SharePoint para estar seguro, pero [esta respuesta] (http://social.msdn.microsoft.com/Forums/sharepoint/en-US/24486a73-bfe0-4ed9- bf6f-32b416cbaf16/what-is-the-relation-between-spfileversions-and-splistitemversions) podría arrojar algo de luz: "' SPListItem.Versions.Count' siempre es 1 más que 'SPFile.Versions.Count'. La razón es' SPFile' considera la última versión como la versión actual y, por lo tanto, no incluye esto en su colección de versiones " –