【问题标题】:Is there a way to limit TOP rows returned by OrmLite select using Linq Expression?有没有办法使用 Linq 表达式限制 OrmLite 选择返回的 TOP 行?
【发布时间】:2014-02-11 04:39:01
【问题描述】:

似乎 OrmLite Select(predicate) 函数将 where 子句中的所有内容(通过网络)带回,然后在其上应用 .Take(x)。

我需要一种只恢复 TOP x 的方法,以便结果更快并使用更少的带宽。

有没有办法限制 OrmLite 选择返回的 TOP 行(使用 Linq 表达式)?

【问题讨论】:

    标签: servicestack ormlite-servicestack


    【解决方案1】:

    使用Limit() 表达式可以获得限制和偏移支持,例如::

    取 10 行

    var rows = db.Select<Table>(q => q.Where(x => x.Name != null).Limit(10));
    

    跳过 5 行,取 10

    var rows = db.Select<Table>(q => q.Where(x => x.Name != null).Limit(5,10));
    

    【讨论】:

    • 这也可以通过 Expression> 重载来完成... var lambda = OrmExtensions.BuildLambdaDynamic(search.Where);车辆 = db.Select(q => q.Where(lambda).Limit(search.Take));
    猜你喜欢
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多