1

我在我的应用程序中使用 L2S,但我越来越多地切换到dapper.net,因为我在查询性能和烦人的n+1 选择问题上遇到了重大问题。

它工作正常,但我想念过滤数据时舒适的 LINQish 编写谓词的风格。

所以我的问题是,我如何将形式的谓词转换Func<T, bool>为 SQL Server where 子句以将其与 dapper 一起使用?

我认为以前一定有人这样做过,还是所有精巧的用户都手动编写了他们的 sql 语句?

正如标题所暗示的,也许可以选择为 SQL Server 调用 LINQ2SQL 提供程序?

基本上我正在寻找类似动态linq的逆的东西。

4

1 回答 1

2

有多种方法可以查看 LINQ 生成的 SQL。请参阅 Visual Studio Magazine 中的文章Seeing the SQL Generated by LINQ to Entity Queries

现在我更好地了解了您的需求,我对此进行了更多研究,并发现了一些值得一看的相关帖子:

dapper 中的动态 where 子句建议使用 Stringbuilder,但其中一条评论指向 Sam Saffron 的一篇文章Porting LINQ-2-SQL to Dapper for great justice,该文章谈到了可能对您有所帮助的贡献的 SqlBuilder。

使用 Linq-to-Sql 表达式生成 SQL 子句,该表达式建议使用 LINQ Where 调用并从生成的 SQL 中获取 WHERE 子句。

于 2011-12-23T18:02:34.873 回答