我希望在我的 ASP.NET/SQL Server 2005 应用程序中添加“高级搜索”功能。理想情况下,我希望它是表驱动的。例如,如果我的架构随着向要搜索的表中添加新列而发生变化,我希望 UI 将新列的添加反映为可搜索字段。我可以设想一些包含可搜索字段、它们的类型、相关查找等的控制表。
构建 UI 时可以参考这些表。我的问题在于创建动态 SQL 的最佳方法。一种方法是自己构造一个参数化的 SQL 语句。但我对 Linq 很感兴趣,不知何故,我认为 System.Linq.Dynamic 命名空间——以及Linq 表达式树——可能会提供更优雅/更强大的解决方案?
希望任何此类解决方案都适用于 Linq to Sql 或 Linq to Entities。我调查这条路径是否正确,或者这个问题空间是否真的不是表达式树的用例之一?