【问题标题】:How to join two SqlExpression With And Condition using Servicestack.Ormlite如何使用 Servicestack.Ormlite 加入两个 SqlExpression With And Condition
【发布时间】:2023-03-18 08:53:02
【问题描述】:

我需要在泛型类中过滤掉一些数据,我不知道如何将两个SqlExpression<T>AND 条件连接起来。我试过了:

public List<T> Select(SqlExpression<T> expression)
{
    var list = new List<T>();
    using (var db = OpenConnection().Open())
    {
        if (_stores)
        {
            list = db.Select<T>(expression);
        }
        else
        {
            var q = db.From<T>().Where(x => (x as EntityBase).store_id == _store_id);
            list = db.Select<T>(q, expression);
        }
    }
    return list;
}

但这不起作用

list = db.Select<T>(q, expression); // this is not working

【问题讨论】:

  • 请不要向特定用户提出您的问题,这是一个开放的 Q/A 网站,任何知道答案的人都应该能够为您提供帮助,而向个人提出问题是不鼓励的。

标签: c# servicestack ormlite-servicestack


【解决方案1】:

SqlExpression&lt;T&gt; OrmLite's 类型化查询构建器,只能有 1 个查询构建器,因此您不能将 2 个查询构建器合并在一起,您需要将任何您想要的条件应用于现有查询构建器,例如:

public List<T> Select(SqlExpression<T> expression) =>
    db.Select(expression.And(x => (x as EntityBase).store_id == _store_id));

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多