Hi Robert,
I use a set of linq queries (linq to entities RTM) to get data from a database containing music information (http://www.luminescence-software.org/download/MetatOGGer-270808.exe) :
// exact search, case sensitive
from album in entities.AlbumJeu.Include("Artist")
from track in entities.TrackJeu
where album.Name == qAlbum && album.Artist.Name == qArtist && track.Title == qTitle
select album).Distinct().Take(500);
// exact search, case insensitive
from album in entities.AlbumJeu.Include("Artist")
from track in entities.TrackJeu
where album.Name.ToLower() == qAlbum.ToLower() && album.Artist.Name.ToLower() == qArtist.ToLower() && track.Title.ToLower() == qTitle.ToLower()
select album).Distinct().Take(500);
// case sensitive
from album in entities.AlbumJeu.Include("Artist")
from track in entities.TrackJeu
where album.Name.Contains(qAlbum) && album.Artist.Name.Contains(qArtist) && track.Title.Contains(qTitle)
select album).Distinct().Take(500);
// case insensitive
from album in entities.AlbumJeu.Include("Artist")
from track in entities.TrackJeu
where album.Name.ToLower().Contains(qAlbum.ToLower()) && album.Artist.Name.ToLower().Contains(qArtist.ToLower()) && track.Title.ToLower().Contains(qTitle.ToLower())
select album).Distinct().Take(500);
1. With the first query, the Include statement doesn't work (artist data is not loaded, I must invoke ArtistReference.Load()).
2. My queries are not optimized : case insensitive search don't use indexes, for example. How can I optimize them ?
3. Is there a way to trace the SQL code generated by the linq to entities provider ?
Thanks for your help.
Cyber Sinh