问题:
我们可以在不更改源代码的情况下动态构造 LINQ 查询吗?在这种情况下,将从数据库中存储的 XML 配置中提取查询参数。
示例:
var result = from i in someObj where name = 'Bob'
动态查询生成:
答案:
表达式树为这种动态查询生成提供了解决方案。下面是一个代码示例:
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda<Func<SomeObject, bool>>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
说明:
注意: 这种方法更复杂,但为需要通过 XML 配置进行动态查询构造的情况提供了灵活性。
以上是可以从 XML 配置构建动态 LINQ 查询吗?的详细内容。更多信息请关注PHP中文网其他相关文章!