EF 或者 Linq中动态拼接参数

可以通过动态拼接使用表达式树,来拼接参数 Expression Tree。作为Where的参数。

可以先写一个固定的表达式树,通过 ExpressionTreeToString 来查看生成的代码是什么样子的。

GitHub - zspitz/ExpressionTreeToString: String representations of expression trees + library of expression tree objects

也有一些辅助的代码拼接库,可以简化这个流程

GitHub - dbelmont/ExpressionBuilder: A library that provides a simple way to create lambda expressions to filter lists and database queries.

 

表达式树基本介绍:相关表达式树的代码都可以看看

Part3-41:什么是表达式树,Expression和Func的区别_哔哩哔哩_bilibili

Part3-43:通过代码动态构造表达式树_哔哩哔哩_bilibili

 

最后:如果拼接表达式树太复杂,可以使用拼接字符串的方式,用 

Search · linq.dynamic · GitHub

Dynamic LINQ (dynamic-linq.net)

这种方式来实现

 

posted @ 2022-07-28 22:50  百年俊少  阅读(245)  评论(0编辑  收藏  举报