UserTable table = new("Users", "tenant1");
var query = new TableQuery(table)
.And(table.Status.EqualValue(true));
var cursor = new TableCursor(query, 10, 20)
.Desc(table.Id);
var select = new CursorSelect(cursor)
.Select(table.Id, table.Name);
// MsSql生成sql: SELECT [Id],[Name] FROM [tenant1].[Users] WHERE [Status]=1 ORDER BY [Id] DESC OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY
public class UserTable(string tableName = "Users", string schema = "")
: TableSchema(tableName, [Defines.Id, Defines.Name, Defines.Status], schema)
{
#region Columns
public readonly ColumnSchema Id = Defines.Id;
new public readonly ColumnSchema Name = Defines.Name;
public readonly ColumnSchema Status = Defines.Status;
#endregion
class Defines
{
public static readonly ColumnSchema Id = new("Id") { ColumnType = ColumnType.Key };
public static readonly ColumnSchema Name = new("Name");
public static readonly ColumnSchema Status = new("Status");
}
}
5.2 DDL+表达式版查询示例
var select = new TableSchema("Users", [], "tenant1")
.ToSqlQuery<User>()
.Where(u => u.Status)
.Take(10, 20)
.Desc(u => u.Id)
.ToSelect();
// MsSql生成sql: SELECT * FROM [tenant1].[Users] WHERE [Status]=1 ORDER BY [Id] DESC OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY