2012-08-16 2 views
1

Je l'ai vu que si je veux faire une requête LINQ en utilisant SQLite net si je fais:Comment faire une jointure dans linq en utilisant sqlite-net pour les applications Metro WinRT?

var query = conn.Table<TableName1>().Where(x => x.Field=="Val1"); 

i peut appliquer une où la sélection; est-il possible de faire quelque chose de similaire pour plus d'une table, en appliquant une jointure entre TableName1 et TableName2? Si c'est possible, quelle est la bonne syntaxe pour la requête linq?

Répondre

1

Utilisez une requête:

var query = string.Format (
       @" 
       SELECT artist.Name as ArtistName, album.Id as AlbumId, album.Title as AlbumTitle, 
        track.Id as TrackId, track.Name as TrackName, track.Number as TrackNumber 
       FROM Track track 
       LEFT OUTER JOIN Album album 
       ON track.AlbumId = album.Id 
       LEFT OUTER JOIN Artist artist 
       ON album.ArtistId = artist.Id 
       WHERE track.Id = '{0}' 
       " 
       ,trackId.ToString()); 

      var trackViewModels = await QueryAsync<TrackViewModel> (query); 
      return trackViewModels.FirstOrDefault(); 
Questions connexes