Oui. Réécrivez la requête LINQ. La plupart des requêtes LINQ to Entities peuvent être écrites de différentes manières et seront traduites en SQL différemment. Puisque vous ne montrez ni LINQ, ni SQL, ni le plan de requête, c'est à peu près tout ce que je peux dire.
Vous êtes intelligent, cependant, pour essayer d'exécuter le SQL directement. La compilation des requêtes peut également prendre du temps, mais vous avez exclu cela en déterminant que le SQL représente tout le temps mesuré.
Essayez :
var query = from pe in genesisContext.People_Event_Link
where pe.P_ID == key
from ev in pe.Event // presuming one to many
select ev;
ou si pe.Event est un à un :
var query = from pe in genesisContext.People_Event_Link
where pe.P_ID == key
select pe.Event;
return query;