Comment appeler un fournisseur L2S pour traduire un prédicat sous forme de Func <T,bool> à une clause SQL where?

dapper linq-to-sql predicate sql sql-server-2008

Question

J'utilise L2S dans mon application, mais je passe de plus en plus sur dapper.net car je rencontre des problèmes majeurs avec les performances des requêtes et le problème de sélection n + 1 .

Son fonctionnement est correct, mais le style d'écriture de prédicats LINQish confortable lors du filtrage des données me manque.

Donc, ma question est, comment puis-je traduire un prédicat sous forme de Func<T, bool> à une clause SQL Server où l'utiliser avec dapper?

Je pense que quelqu'un a déjà fait cela ou est-ce que tous les utilisateurs de Dapper codent leurs instructions SQL?

Comme le titre l'indique, peut-être est-il possible d'appeler le fournisseur LINQ2SQL pour SQL Server?

Fondamentalement, je cherche quelque chose comme l'inverse de linq dynamique.

Réponse populaire

Il existe des moyens de voir le SQL généré par LINQ. Consultez l'article Voir le SQL généré par les requêtes LINQ to Entity à partir de Visual Studio Magazine.

Maintenant que je comprends mieux ce que vous recherchez, j'ai fait un peu plus de recherches à ce sujet et j'ai trouvé quelques articles connexes qui méritent d'être examinés:

Dynamic where clause dans dapper qui suggère d'utiliser un Stringbuilder, mais l'un des commentaires pointe vers un article de Sam Saffron, Porting LINQ-2-SQL vers Dapper , qui parle d'un SqlBuilder contribué qui pourrait vous aider.

Générez une clause SQL à l'aide d'une expression Linq-to-Sql qui suggère d'utiliser un appel LINQ Where et de récupérer la clause WHERE dans le code SQL généré.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi