Sie könnten die Schemaerweiterungen mit Microsoft Graph sdk v1.4.0 Version erstellen. Verwandte Diskussion & Codebeispiel here und here sind für Ihre Referenz.
// Create a schema extension for groups.
SchemaExtension extensionDefinition = new SchemaExtension()
{
Description = "This extension correlates a group with a foreign database.",
Id = $"crmForeignKey", // Microsoft Graph will prepend 8 chars
Properties = new List<ExtensionSchemaProperty>()
{
new ExtensionSchemaProperty() { Name = "fid", Type = "Integer" }
},
TargetTypes = new List<string>()
{
"Group"
}
};
// Create the schema extension. This results in a call to Microsoft Graph.
SchemaExtension schemaExtension = await graphClient.SchemaExtensions.Request().AddAsync(extensionDefinition);
Dann erstellen Sie eine Klasse für die Erweiterung:
Um zum Beispiel eine Schemaerweiterung für Gruppen zu erstellen
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class MyDBExtensionClass
{
[JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "fid", Required = Newtonsoft.Json.Required.Default)]
public int FID { get; set; }
public MyDBExtensionClass(int fid)
{
FID = fid;
}
}
Als nächstes legen Sie die Schemaerweiterung Eigenschaften auf eine existierte Gruppe von update AdditionalData
Eigenschaft Gruppe:
// Update a group.
// This snippet changes the group name.
// This snippet requires an admin work account.
public async Task<List<ResultsItem>> UpdateGroup(GraphServiceClient graphClient, string id, string name)
{
List<ResultsItem> items = new List<ResultsItem>();
IDictionary<string, object> extensionInstance = new Dictionary<string, object>();
extensionInstance.Add(extensionIDYouGet, new MyDBExtensionClass(1213));
// Update the group.
await graphClient.Groups[id].Request().UpdateAsync(new Group
{
DisplayName = Resource.Updated + name,
AdditionalData= extensionInstance
});
items.Add(new ResultsItem
{
// This operation doesn't return anything.
Properties = new Dictionary<string, object>
{
{ Resource.No_Return_Data, "" }
}
});
return items;
}
Man könnte auch hinzufügen die Erweiterung zu einer neuen Gruppe erstellen wie oben gezeigt.
Update:
Ihre Anforderung die Schemaerweiterung Eigenschaften Benutzer setzt, dann aktualisieren AdditionalData
Eigenschaft Benutzer:
await graphClient.Users["ID"].Request().UpdateAsync(new User
{
DisplayName = Resource.Updated + name,
AdditionalData = extensionInstance
});
Und wenn Sie für Benutzer Entitätsschema Erweiterung erstellen möchten, User
Wert sollte enthält in TargetTypes
Eigenschaft des SchemaExtension-Objekts.