表游标
- 对表进行截取,处理分页和排序
- 本组件是对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. 其他相关功能