2017-10-13 12 views
2

On suppose que je travaille avec la base de données de graphique à partir de cet échantillon (SQL Server 2017):Syntaxe de requête Entity Framework à SQL Server 2017 base de données Graphique

https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-sample

je la requête SQL suivante:

J'ai créé un modèle en C# en utilisant EF 6.1.3 et il génère automatiquement toutes les classes et tous les éléments de la base de données (EF Designer de la base de données). Tout cela fonctionne très bien. Je peux même interroger toutes les personnes en utilisant une méthode simple comme:

public ICollection<People> ListPeople() => Entities.Peoples.ToList(); 

Maintenant, si nous revenons à la requête initiale, où je voudrais trouver des restaurants que John aime ... comment vais-je faire dans Entity Framework? Dois-je utiliser une requête LINQ ou puis-je simplement appeler les entités? (Je ne peux probablement pas parce qu'il ne semble pas y avoir de relation physique entre les tables, que par les trouver dans les bords)

Je pensais à quelque chose comme

public 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; 
     } 

Mais cette syntaxe est incorrect ... comment puis-je faire cette requête? Entity Framework ne prend pas en charge les extensions graphiques spécifiques au serveur SQL.

Répondre

1

Vous pouvez utiliser les tables API Cosmos DB de Microsoft pour accéder Graphique fonctionnalités de SQL Server 2017. Voici le link

+0

Merci! Bien que pas idéal, je suppose que c'est le plus proche qu'il peut obtenir :) – gbdavid

+0

Merci pour le lien, on ne sait pas comment l'API DB Cosmos est liée à SQL Server 2017, sauf si j'ai raté quelque chose? – johnstaveley