Cette section présente des méthodes sur un objet Connection
pour gérer les schemas et les properties des nodes et des edges dans un graphset.
Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'exemple complet.
Schema
ShowSchema()
Récupère tous les schemas de nodes et d'edges du graphset actuel.
Paramètres :
RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
List<Schema>
: La liste de tous les schemas dans le graphset actuel.
// Récupère tous les schemas dans le graphset 'UltipaTeam' et imprime leurs noms et types
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var schemaInfo = await ultipa.ShowSchema(requestConfig);
foreach (var schema in schemaInfo)
{
Console.WriteLine(schema.DbType + ": " + schema.Name);
}
Dbnode: default
Dbnode: member
Dbnode: organization
Dbedge: default
Dbedge: reportsTo
Dbedge: relatesTo
GetSchema()
Récupère un node ou un edge schema du graphset actuel.
Paramètres :
string
: Nom du schema.DBType
: Type du schema (node ou edge).RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
Schema
: Le schema récupéré.
// Récupère le node schema 'member' et le edge schema 'connectsTo' dans le graphset 'UltipaTeam', et imprime toutes leurs informations
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var schema1 = await ultipa.GetSchema("member", DBType.Dbnode, requestConfig);
Console.WriteLine("schema1: " + JsonConvert.SerializeObject(schema1));
var schema2 = await ultipa.GetSchema("connectsTo", DBType.Dbedge, requestConfig);
Console.WriteLine("schema2: " + JsonConvert.SerializeObject(schema2));
schema1: {"Name":"member","Desc":"","DbType":0,"Total":0,"Properties":[{"Name":"title","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""},{"Name":"profile","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""},{"Name":"startDate","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":8,"SubTypes":[],"Extra":"{}","Encrypt":""}]}
schema2: null
ShowNodeSchema()
Récupère tous les schemas de nodes du graphset actuel.
Paramètres :
RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
List<Schema>
: La liste de tous les schemas de nodes dans le graphset actuel.
// Récupère tous les schemas de nodes dans le graphset 'UltipaTeam' et imprime leurs noms
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var schemaList = await ultipa.ShowNodeSchema(requestConfig);
foreach (var schema in schemaList)
{
Console.WriteLine(schema.Name);
}
default
member
organization
ShowEdgeSchema()
Récupère tous les schemas d'edges du graphset actuel.
Paramètres :
RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
List<Schema>
: La liste de tous les schemas d'edges dans le graphset actuel.
// Récupère tous les schemas d'edges dans le graphset 'UltipaTeam' et imprime leurs noms
var schemaList = await ultipa.ShowEdgeSchema(requestConfig);
foreach (var schema in schemaList)
{
Console.WriteLine(schema.Name);
}
default
reportsTo
relatesTo
GetNodeSchema()
Récupère un node schema du graphset actuel.
Paramètres :
string
: Nom du schema.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
Schema
: Le node schema récupéré.
// Récupère le node schema 'member' dans le graphset 'UltipaTeam' et imprime ses properties
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var schema = await ultipa.GetNodeSchema("member", requestConfig);
foreach (var item in schema.Value.Properties)
{
Console.WriteLine(JsonConvert.SerializeObject(item));
}
{"Name":"title","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""}
{"Name":"profile","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""}
{"Name":"startDate","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":8,"SubTypes":[],"Extra":"{}","Encrypt":""}
GetEdgeSchema()
Récupère un edge schema du graphset actuel.
Paramètres :
string
: Nom du schema.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
Schema
: Le edge schema récupéré.
// Récupère le edge schema 'relatesTo' dans le graphset 'UltipaTeam' et imprime ses properties
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var schema = await ultipa.GetEdgeSchema("relatesTo", requestConfig);
foreach (var item in schema.Value.Properties)
{
Console.WriteLine(JsonConvert.SerializeObject(item));
}
{"Name":"type","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"relatesTo","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""}
CreateSchema()
Crée un nouveau schema dans le graphset actuel.
Paramètres :
Schema
: Le schema à créer ; le champName
doit être défini,DbType
(si non spécifié, Dbnode est utilisé par défaut),Desc
(court pour description) etProperties
sont optionnels.bool
(Optional) : Indique si les propriétés doivent être créées, la valeur par défaut estfalse
.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
// Crée le node schema 'utility' (avec properties) dans le graphset 'UltipaTeam' et imprime toutes ses informations
var new1 = await ultipa.CreateSchema(
new Schema()
{
Name = "utility",
DbType = DBType.Dbnode,
Properties = new List<Property>()
{
new Property() { Name = "name", Type = PropertyType.String },
new Property() { Name = "purchaseDate", Type = PropertyType.Datetime },
},
},
true,
requestConfig
);
Console.WriteLine(new1.Status.ErrorCode);
Thread.Sleep(3000);
var show1 = await ultipa.GetNodeSchema("utility", requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(show1.Value));
// Crée le edge schema 'managedBy' (sans properties) dans le graphset 'UltipaTeam' et imprime toutes ses informations
var new2 = await ultipa.CreateSchema(
new Schema()
{
Name = "managedBy",
Desc = "office utilities",
DbType = DBType.Dbedge,
},
requestConfig
);
Console.WriteLine(new2.Status.ErrorCode);
Thread.Sleep(3000);
var show2 = await ultipa.GetEdgeSchema("managedBy", requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(show2.Value));
Success
{"Name":"utility","Desc":"","DbType":0,"Total":0,"Properties":[{"Name":"name","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"utility","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""},{"Name":"purchaseDate","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"utility","Type":8,"SubTypes":[],"Extra":"{}","Encrypt":""}]}
Success
{"Name":"managedBy","Desc":"office utilities","DbType":1,"Total":0,"Properties":[]}
CreateSchemaIfNotExist()
Crée un nouveau schema dans le graphset actuel, en gérant les cas où le nom du schema donné existe déjà en ignorant l'erreur.
Paramètres :
Schema
: Le schema à créer ; les champsName
etDBType
doivent être définis,Desc
etProperties
sont optionnels.bool
(Optional) : Indique si les propriétés doivent être créées, la valeur par défaut estfalse
.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.bool
: Indique si le schema existe.
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
// Crée un schema dans le graphset 'UltipaTeam' et imprime si le schema existe déjà
var new1 = await ultipa.CreateSchemaIfNotExist(
new Schema() { Name = "utility", DbType = DBType.Dbnode },
requestConfig
);
Console.WriteLine("Schema already exists: " + new1.Item2);
Thread.Sleep(3000);
// Crée le même schema à nouveau et imprime si le schema existe déjà
var new2 = await ultipa.CreateSchemaIfNotExist(
new Schema() { Name = "utility", DbType = DBType.Dbnode },
requestConfig
);
Console.WriteLine("Schema already exists: " + new2.Item2);
Schema already exists: False
Schema already exists: True
AlterSchema()
Modifie le nom et la description d'un schema existant dans le graphset actuel par son nom.
Paramètres :
Schema
: Le schema existant à modifier ; les champsName
etDbType
doivent être définis.Schema
: La nouvelle configuration pour le schema existant ; les champsName
etDbType
doivent être définis.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Renomme le node schema 'utility' en 'securityUtility' et supprime sa description dans le graphset 'UltipaTeam'
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var alter = await ultipa.AlterSchema(
new Schema() { Name = "utility", DbType = DBType.Dbnode },
new Schema()
{
Name = "securityUtility",
DbType = DBType.Dbnode,
Desc = "yyyy",
},
requestConfig
);
Console.WriteLine(alter.Status.ErrorCode);
Success
DropSchema()
Supprime un schema du graphset actuel par son nom.
Paramètres :
Schema
: Le schema existant à supprimer ; les champsName
etDbType
doivent être définis.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Supprime le node schema 'utility' dans le graphset 'UltipaTeam'
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.DropSchema(
new Schema() { Name = "utility", DbType = DBType.Dbnode },
requestConfig
);
Console.WriteLine(res.Status.ErrorCode);
Success
Property
ShowProperty()
Récupère les properties personnalisées des nodes ou edges du graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).string
(Optional) : Nom du schema.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
List<Property>
: La liste de toutes les properties récupérées dans le graphset actuel.
// Récupère toutes les properties de node dans le graphset 'UltipaTeam' et imprime leurs noms et schemas associés
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.ShowProperty(DBType.Dbnode, requestConfig);
foreach (var item in res)
{
Console.WriteLine(
$"{item.Name}({item.Type}) is associated with schema named {item.Schema}"
);
}
name(String) is associated with schema named member
title(String) is associated with schema named member
profile(String) is associated with schema named member
name(String) is associated with schema named organization
logo(String) is associated with schema named organization
ShowNodeProperty()
Récupère les properties personnalisées des nodes du graphset actuel.
Paramètres :
string
(Optional) : Nom du schema.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
List<Property>
: La liste de toutes les properties récupérées dans le graphset actuel.
// Récupère toutes les properties personnalisées du node schema 'member' dans le graphset 'UltipaTeam' et imprime le compte
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.ShowNodeProperty("member", requestConfig);
Console.WriteLine(res.Count);
3
ShowEdgeProperty()
Récupère les properties personnalisées des edges du graphset actuel.
Paramètres :
RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
string
(Optional) : Nom du schema.List<Property>
: La liste de toutes les properties récupérées dans le graphset actuel.
// Récupère toutes les properties personnalisées du edge schema 'relatesTo' dans le graphset 'UltipaTeam' et imprime leurs noms
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.ShowEdgeProperty("relatesTo", requestConfig);
foreach (var item in res)
{
Console.WriteLine(item.Name);
}
type
GetProperty()
Récupère une propriété personnalisée des nodes ou edges du graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).string
: Nom du schema.string
: Nom de la propriété.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
Property
: La propriété récupérée.
// Récupère la propriété node @member.title dans le graphset 'UltipaTeam' et imprime toutes ses informations
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.GetProperty(DBType.Dbnode, "member", "title", requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(res));
{"Name":"title","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""}
GetNodeProperty()
Récupère une propriété personnalisée des nodes du graphset actuel.
Paramètres :
string
: Nom du schema.string
: Nom de la propriété.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
Property
: La propriété récupérée.
// Récupère la propriété node @member.title dans le graphset 'UltipaTeam' et imprime toutes ses informations
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.GetNodeProperty("member", "title", requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(res));
{"Name":"title","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"member","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""}
GetEdgeProperty()
Récupère une propriété personnalisée des edges du graphset actuel.
Paramètres :
string
: Nom du schema.string
: Nom de la propriété.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
Property
: La propriété récupérée.
// Récupère la propriété edge @relatesTo.type dans le graphset 'UltipaTeam' et imprime toutes ses informations
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res = await ultipa.GetEdgeProperty("relatesTo", "type", requestConfig);
Console.WriteLine(JsonConvert.SerializeObject(res));
{"Name":"type","Desc":"","Lte":false,"Read":true,"Write":true,"Schema":"relatesTo","Type":7,"SubTypes":[],"Extra":"{}","Encrypt":""}
CreateProperty()
Crée une nouvelle propriété pour un node ou un edge schema dans le graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).Property
: La propriété à créer ; les champsSchema
,Name
etType
doivent être définis ; écrire*
dansSchema
pour spécifier tous les schemas.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Crée deux propriétés pour le node schema 'member' dans le graphset 'UltipaTeam' et imprime les codes d'erreur
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
var res1 = await ultipa.CreateProperty(
DBType.Dbnode,
new Property()
{
Name = "startDate",
Schema = "member",
Type = PropertyType.Datetime,
},
requestConfig
);
Console.WriteLine(res1.Status.ErrorCode);
var res2 = await ultipa.CreateProperty(
DBType.Dbnode,
new Property()
{
Name = "age",
Schema = "member",
Type = PropertyType.Int32,
},
requestConfig
);
Console.WriteLine(res2.Status.ErrorCode);
Success
Success
CreatePropertyIfNotExist()
Crée une nouvelle propriété pour un node ou un edge schema dans le graphset actuel, en gérant les cas où le nom de la propriété donné existe déjà en ignorant l'erreur.
Paramètres :
DBType
: Type de la propriété (node ou edge).Property
: La propriété à créer ; les champsName
etType
doivent être définis.RequestConfig
(Optional) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
UqlResponse
: Résultat de la requête.bool
: Indique si la propriété existe.
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
// Crée une propriété pour le node schema 'member' dans le graphset 'UltipaTeam' et imprime si le schema existe déjà
var res1 = await ultipa.CreatePropertyIfNotExist(
DBType.Dbnode,
new Property()
{
Name = "startDate",
Schema = "member",
Type = PropertyType.Datetime,
},
requestConfig
);
Console.WriteLine("Property already exists: " + res1.Item2);
// Crée la même propriété à nouveau dans le graphset 'UltipaTeam' et imprime si le schema existe déjà
var res2 = await ultipa.CreatePropertyIfNotExist(
DBType.Dbnode,
new Property()
{
Name = "startDate",
Schema = "member",
Type = PropertyType.Datetime,
},
requestConfig
);
Console.WriteLine("Property already exists: " + res2.Item2);
Property already exists: False
Property already exists: True
AlterProperty()
Modifie le nom et la description d'une propriété personnalisée existante dans le graphset actuel par son nom.
Paramètres :
DBType
: Type de la propriété (node ou edge).Property
: La propriété existante à modifier ; les champsName
etSchema
(écrire*
pour spécifier tous les schemas) doivent être définis.Property
: La nouvelle configuration pour la propriété existante ; l'un ou les deux champsName
etDesc
doivent être définis.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
// Renomme les propriétés 'name' associées à tous les node schemas à `Name` dans le graphset 'UltipaTeam'
var res = await ultipa.AlterProperty(
DBType.Dbnode,
new Property() { Name = "name", Schema = "*" },
new Property() { Name = "Name", Schema = "*" },
requestConfig
);
Console.WriteLine(res.Status.ErrorCode);
Success
DropProperty()
Supprime une propriété personnalisée du graphset actuel par son nom et le schema associé.
Paramètres :
DBType
: Type de la propriété (node ou edge).string
: Nom du schema.string
: Nom de la propriété.RequestConfig
(Optional) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig() { Graph = "UltipaTeam" };
// Supprime les propriétés 'startDate' associées à tous les node schemas dans le graphset 'UltipaTeam' et imprime le code d'erreur
var res1 = await ultipa.DropProperty(DBType.Dbnode, "*", "startDate", requestConfig);
Console.WriteLine(res1.Status.ErrorCode);
// Supprime la propriété node @member.name dans le graphset 'UltipaTeam' et imprime le code d'erreur
var res2 = await ultipa.DropProperty(DBType.Dbnode, "member", "name", requestConfig);
Console.WriteLine(res2.Status.ErrorCode);
Success
Success
Exemple Complet
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Xml.Linq;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using UltipaService;
using UltipaSharp;
using UltipaSharp.api;
using UltipaSharp.configuration;
using UltipaSharp.connection;
using UltipaSharp.exceptions;
using UltipaSharp.structs;
using UltipaSharp.utils;
using Logger = UltipaSharp.utils.Logger;
using Property = UltipaSharp.structs.Property;
using Schema = UltipaSharp.structs.Schema;
class Program
{
static async Task Main(string[] args)
{
// Connection configurations
//URI example: Hosts=new[]{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"}
var myconfig = new UltipaConfig()
{
Hosts = new[] { "192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061" },
Username = "***",
Password = "***",
};
// Etablit la connexion à la base de données
var ultipa = new Ultipa(myconfig);
var isSuccess = ultipa.Test();
Console.WriteLine(isSuccess);
// Configurations de requête
RequestConfig requestConfig = new RequestConfig() { UseMaster = true };
// Crée le node schema 'utility' (avec properties) dans le graphset 'UltipaTeam' et imprime le code d'erreur
var res = await ultipa.CreateSchema(
new Schema()
{
Name = "utility",
DbType = DBType.Dbnode,
Properties = new List<Property>()
{
new Property() { Name = "name", Type = PropertyType.String },
new Property() { Name = "purchaseDate", Type = PropertyType.Datetime },
},
Desc = "Office utilities",
},
true,
requestConfig
);
Console.WriteLine("Node schema creation : " + res.Status.ErrorCode);
Console.WriteLine(
JsonConvert.SerializeObject(
(await ultipa.GetNodeSchema("utility", requestConfig)).Value
)
);
}
}