2016-03-21 15 views
0

Diese Abfrage funktioniert, wenn ich versuche, Aufzeichnungen zu holen mit IN und mehrere E-Mail-IDs:übergeben Sie eine Liste der Zeichenfolge des in IN-Klausel in DocumentDb Abfrage

var families = _client.CreateDocumentQuery<Restraunt>(_documentCollection.SelfLink, 
"Select Restraunt.RestrauntId from Restraunt join Rest in Restraunt.Emails where Emails.Email IN ('[email protected]','[email protected]') ").AsEnumerable().ToList(); 

Ich mag wissen, wie kann ich eine Liste von E-Mail-IDs übergeben als Zeichenfolge in der Abfrage? Ich habe versucht, die Liste der Zeichenfolgen direkt zu übergeben, kann dies jedoch nicht beheben. Gibt es einen Ausweg?

Sagen wir, ich habe

List<string> elist=new List<string>{"[email protected]","[email protected]"} 

Wie kann ich elist in der Abfrage übergeben?

Antwort

0

Sie haben Ihre Suche verfeinern ARRAY_CONTAINS stattdessen zu verwenden, das heißt wie folgt aus:

Select Restraunt.RestrauntId 
from Restraunt 
join Rest in Restraunt.Emails 
where ARRAY_CONTAINS(['[email protected]','[email protected]'], Emails.Email) 

Dann können Sie diese Abfrage parametrisieren, und das Array von E-Mails als Parameter senden.

+0

int n = elist.Count(); string [] emailArray = neuer String [n]; emailArray = elist.ToArray(); Wählen Sie Restraunt.RestrauntId aus Restraint Join Rest in Restraunt.Emails wo ARRAY_CONTAINS (emailArray, Emails.Email) Ich habe das emailArray als Array übergeben, aber es zeigt den Fehler, dass "emailArray" nicht aufgelöst wird. - –

0

Sie können dies versuchen: