【问题标题】:Dynamic parameters for where clause in a typed dataset possible?类型化数据集中where子句的动态参数可能吗?
【发布时间】:2011-01-17 11:58:25
【问题描述】:

普通的 ASP.NET 表适配器适用于简单的 where 子句,例如 - “where city = @city and state = @state and zip = @zip”

但是我如何设计一个允许我使用参数的任意组合的 DAL——“仅按城市搜索”或“按 zip 和州搜索”或“按城市和州搜索”......甚至更复杂的“按 zip 搜索,但如果 @zip 为空,则按城市搜索”....

如何设计一个支持这种动态 where 条件的 DAL?带有表适配器的类型化数据集是最好的方法吗?目前,我只是对普通数据集使用动态 SQL 查询,并尝试将其转换为某种强类型 DAL。

【问题讨论】:

    标签: dynamic data-access-layer where-clause


    【解决方案1】:

    在我看来,您可能想查看 Dynamic LINQ。当存在这种动态条件时,它会很有帮助。我发现代码示例here 非常有帮助。

    HTH, 席德

    【讨论】:

    • 谢谢 Sid,我有点担心用 LINQ 做所有 DAL 的事情,以防 MS 决定稍后杀死(完全/部分)LINQ。但是不管 LINQ 是留还是走,还有其他设计 DAL 的方法可以解决这个“动态 where 子句”问题吗?
    • Achilles,我想到了两个可能的想法。首先,不是那么干净,是创建存储过程以使用 zip、城市或州或多个参数从表中选择数据。然后,在您的表示层中,创建一个使用下拉列表和文本框的控件,下拉列表允许用户选择要搜索的字段 - 城市、州或邮政编码。编辑从这里开始:我认为 LINQ to ADO.NET 实体不会很快出现在任何地方。我在当前项目中使用 L2E,但我不打算使用 LINQ to SQL,因为我确实觉得它会被逐步淘汰。
    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多