Trovare la mappatura dei campi sul DB di SharePoint
Esempio di codice per recuperare come sono mappati i campi di una lista sul DB di SharePoint.
Può essere utile per sapere quali campi, della collection Fields, sono di sistema (il nome inizia con "tp_" o "_") oppure no (il nome inizia con: nvarchar, int, text date...).
Il nome del campo del DB su cui sono mappati i campi della lista di SharePoint si trova nell'attributo ColName, mentre l'attributo StaticName contiene il nome del campo nella lista SharePoint.
il codice è solo di esempio, non gestisce le condizioni di errore.
Può essere utile per sapere quali campi, della collection Fields, sono di sistema (il nome inizia con "tp_" o "_") oppure no (il nome inizia con: nvarchar, int, text date...).
Il nome del campo del DB su cui sono mappati i campi della lista di SharePoint si trova nell'attributo ColName, mentre l'attributo StaticName contiene il nome del campo nella lista SharePoint.
C#
// codice omesso che apre il sito corrente
// e recupera l'oggetto list (SPList)
XmlDocument xmlDoc = new XmlDocument();
foreach (SPField fld in list.Fields)
{
xmlDoc.LoadXml(fld.SchemaXml);
XmlAttribute staticName = xmlDoc.DocumentElement.Attributes["StaticName"];
XmlAttribute colName = xmlDoc.DocumentElement.Attributes["ColName"];
Console.WriteLine(string.Format("{0} - {1} - {2} - {3} - {4}",
staticName.Value,
(colName != null ? colName.Value : "?"),
fld.FromBaseType,
fld.Group,
fld.Sealed));
}
xmlDoc = null;
il codice è solo di esempio, non gestisce le condizioni di errore.