Frage

Ich versuche, das clientseitige Objektmodell von SharePoint 2013 zum Lesen eines verwalteten Metadatenfelds zu verwenden, erhalte jedoch keine Ergebnisse

Wenn ich in die Site-Spalten schaue, gibt es 5 Felder in der Spaltengruppe "Gruppenname", die zurückgegeben werden sollen:

  • 1 einzelne Textzeile Feld
  • 4 verwaltete Metadatenfelder

Ich benutze dieses C #, um die Spalten in der Gruppe zu erhalten:

private void StackDemo(){
    string contextUrl = "http://mysitecollection/sites/mysite";
    string columnGroup = "GroupName";
    var ctx = new ClientContext(contextUrl)
    {
        Credentials = CredentialCache.DefaultCredentials
    };
    var query = ctx.LoadQuery(from x in ctx.Web.Fields where x.Group== columnGroup select x);

    ctx.ExecuteQuery();
    return query.FirstOrDefault();
}

Wenn ich die Abfrageergebnisse ansehe, kann ich das Nur-Text-Feld anzeigen, aber alle anderen Felder sind null (siehe Screenshot)

screen capture

Das Seltsame ist, dass es für jedes Metadatenfeld ein Ergebnis gibt, aber der Wert ist null.

Ich möchte

  1. Wissen Sie, warum ich Nullen erhalte, obwohl die Abfrage erwartungsgemäß 5 Elemente zurückgibt

  2. Ruft die internen Namen der verwalteten Metadatenspalten des Felds ab

War es hilfreich?

Lösung 2

Es stellte sich heraus, dass es sich um falsche SharePoint-Referenzen handelte.

Ich habe mit der Entwicklung für SharePoint 2010 begonnen, aber während der Entwicklungsphase wurde der Server auf SharePoint 2013 aktualisiert.Die Referenzen in meinem Projekt bezogen sich also auf die 14 Hive-DLLs.Das Aktualisieren dieser zur Verwendung der 15 Hive-DLLs führte dazu, dass die Felder korrekt abgerufen wurden

Andere Tipps

Stellen Sie sicher, dass Sie über ausreichende Berechtigungen verfügen (mindestens Lesezugriff auf den Terminologiespeicher), um auf einen verwalteten Metadatendienst zuzugreifen.Bitte verweisen Sie auf einen Artikel Erteilen der Berechtigung zum Zugriff auf den verwalteten Metadatendienst für ein Detail.

Alternativ können Sie den SharePoint REST-Dienst verwenden, um feldinterne Namen der verwalteten Metadatenspalten abzufragen:

/_api/web/fields?$select=InternalName&$filter=TypeDisplayName eq 'Managed Metadata'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top