1.) Est-il possible de faire une requête DISTINCT dans LINQ? Comme l'équivalent de la requête AQL ci-dessous?Client ArangoDB .NET: Questions diverses sur les requêtes (DISTINCT, LET/DOCUMENT, AQL brut)
FOR cfg IN test_configuration
FOR method IN inspection_method
FILTER cfg.inspection_method_id == method._id
SORT method.name
RETURN DISTINCT method
2.) Est-il possible de faire "LET doc = DOCUMENT (some._id)"? J'ai essayé quelque chose comme la requête ci-dessous, mais j'ai obtenu une exception à propos du fait que Document n'est pas supporté.
from user in users
let dept = db.Document<Department>(user.department_id)
where dept.name == "lingerie"
select user
3.) Comment faites-vous des requêtes AQL brutes avec des paramètres de liaison? J'ai essayé CreateStatement(), mais je n'ai pas réussi à le faire pour remplacer le paramètre ('evts' est un IEnumerable avec quelques ID de document).
List<ArangoDB.Client.Data.QueryParameter> parameters = new List<ArangoDB.Client.Data.QueryParameter>() {
new ArangoDB.Client.Data.QueryParameter() {
Name = "@P1",
Value = evts,
},
};
query = Database.CreateStatement<InspectionMethod>(@"
FOR cfg IN test_configuration
FOR method IN inspection_method
FILTER cfg.inspection_method_id == method._id AND cfg.test_event_id IN @P1
SORT method.name
RETURN DISTINCT method", parameters)
.AsEnumerable().AsQueryable();
sortie de débogage:
==============================
5/11/2017 2:02:54 PM
creating an AQL query:
query:
FOR cfg IN test_configuration
FOR method IN inspection_method
FILTER cfg.inspection_method_id == method._id AND cfg.test_event_id IN @P1
SORT method.name
RETURN DISTINCT method
bindVars:
name: @P1 value: ["test_event/7250917"]
parsed query with variables replaced:
FOR cfg IN test_configuration
FOR method IN inspection_method
FILTER cfg.inspection_method_id == method._id AND cfg.test_event_id IN @P1
SORT method.name
RETURN DISTINCT method