Table of Contents

表游标

  • 对表进行截取,处理分页和排序
  • 本组件是对ShadowSql.Core同名组件的泛型扩展
  • 支持对数据表类型特殊处理,增强功能、增加易用性

1. 接口

ICursor

2. 基类

CursorBase

3. 类

TableCursor<TTable>

class TableCursor<TTable>
    where TTable : ITable;

4. ToCursor

4.1 ToCursor扩展方法

TableCursor<TTable> ToCursor<TTable>(this TTable source, int limit = 0, int offset = 0)
        where TTable : ITable;
var cursor = _db.From("Users")
    .ToCursor(10, 20);

4.2 ToCursor重载扩展方法

TableCursor<TTable> ToCursor<TTable>(this TTable source, ISqlLogic where, int limit = 0, int offset = 0)
        where TTable : ITable;
var age = Column.Use("Age");
var cursor = _db.From("Users")
    .ToCursor(age.GreaterValue(30), 10, 20);

4.3 ToCursor重载扩展方法

TableCursor<TTable> ToCursor<TTable>(this TableSqlQuery<TTable> query, int limit = 0, int offset = 0)
        where TTable : ITable;
var cursor = _db.From("Users")
    .ToSqlQuery()
    .Where("Age>30")
    .ToCursor(10, 20);

4.4 ToCursor重载扩展方法

TableCursor<TTable> ToCursor<TTable>(this TableQuery<TTable> query, int limit = 0, int offset = 0)
        where TTable : ITable;
var age = Column.Use("Age");
var cursor = _db.From("Users")
    .ToQuery()
    .And(age.GreaterValue(30))
    .ToCursor(10, 20);

4.5 ToCursor重载扩展方法

TableCursor<ITable> ToCursor(this TableSqlQuery query, int limit = 0, int offset = 0);
var cursor = new TableSqlQuery("Users")
    .Where("Age>30")
    .ToCursor(10, 20);

4.6 ToCursor重载扩展方法

TableCursor<ITable> ToCursor(this TableQuery query, int limit = 0, int offset = 0);
var age = Column.Use("Age");
var cursor = new TableQuery("Users")
    .And(age.GreaterValue(30))
    .ToCursor(10, 20);

5. Asc方法

TableCursor<TTable> Asc(Func<TTable, IOrderView> select);
var select = new UserTable()
    .ToCursor(10, 20)
    .Asc(table => table.Id);

6. Desc方法

TableCursor<TTable> Desc(Func<TTable, IOrderAsc> select);
var select = new UserTable()
    .ToCursor(10, 20)
    .Desc(table => table.Id);

7. 其他相关功能