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.
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.
Potrebbe interessarti anche: