Angenommen ich mit der Graphdatenbank von dieser Probe (SQL Server 2017) gerade arbeitete:Syntax für Entity Framework Abfrage auf SQL Server 2017 Graph-Datenbank
https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-sample
Ich habe die folgende SQL-Abfrage:
-- Find Restaurants that John likes
SELECT Restaurant.name
FROM Person, likes, Restaurant
WHERE MATCH (Person-(likes)->Restaurant)
AND Person.name = 'John';
Ich erstellte ein Modell in C# mit EF 6.1.3 und es generiert automatisch alle Klassen und alles aus der Datenbank (EF Designer aus der Datenbank). Das alles funktioniert gut. Ich kann sogar alle Menschen abfragen, indem Sie eine einfache Methode, mit wie:
public ICollection<People> ListPeople() => Entities.Peoples.ToList();
Wenn wir nun wieder auf die ursprüngliche Abfrage kommen, wo ich möchte Restaurants finden, die John mag ... wie soll ich das tun im Entitätsrahmen? muss ich eine LINQ-Abfrage verwenden oder kann ich nur die Entitäten aufrufen? (Vermutlich kann ich nicht, weil es scheint, keine physische Beziehung zwischen den Tabellen zu sein, nur um sie in den Rand zu finden)
Ich war wie
an etwas gedachtpublic ICollection<Restaurant> ListRestaurantsLikedByPerson(string personName)
{
var result = from restaurant in Entities.Restaurants, person in Entities.Peoples, likes in Entities.likess
where match (person - likes -> restaurant)
and person.name = personName;
return result;
}
Aber diese Syntax ist falsch ... wie kann ich diese Abfrage machen?
Dank! Obwohl nicht ideal, denke ich, das ist das nächste, was es bekommen kann :) – gbdavid
Danke für den Link, es ist nicht klar, wie die Cosmos DB api mit SQL Server 2017 verwandt ist, es sei denn, ich habe etwas verpasst? – johnstaveley