J'ai essayé d'utiliser la suggestion fournie ici pour utiliser l'opérateur In dans linq, mais je ne suis pas capable de convertir mes exigences en instructions LINQ.Dans l'opérateur dans Linq
Ci-dessous la requête SQL que je dois convertir en Linq
select *
from navigator_user_field_property
where user_id = 'albert'
and field_id in (
select field_id
from navigator_entity_field_master
where entity_id = 1
and use_type = 0)
order by field_id
Je veux que ce soit converti en un efficace Linq.
La plupart des réponses traitent de la liste de chaînes de caractères prédéterminée qui ne fonctionne pas dans mon cas.
Merci
Il existe une raison pour laquelle des jointures existent au niveau SQL. Je peux me tromper, mais cela pourrait potentiellement conduire à des performances dégénérées dans le cas où seule une (petite) fraction des enregistrements extraits correspondrait réellement. Si tel est le cas, alors "efficace" devrait être préfacé avec les conditions. –
@pst: Je ne pense pas que vous compreniez LINQ (sur les arborescences d'expression). Lorsque vous pensez que tous les champs sont extraits de la base de données, vous avez tort. LINQ to SQL transformera ceci en une requête très performante (et unique). Notez également que LINQ to SQL transformera cette requête en une requête SQl avec des jointures, et est capable de le faire en raison des métadonnées du modèle généré. – Steven