TableSchema
- 作为表的影子(占位符)
- 主要用来支持createtable
- 与Table一样也支持select、update、insert和delete等
- TableSchema按字段查询也是会校验的,不存在的字段会抛异常
- 本文sql示例按Sqlite数据库
1. 接口
2. TableSchema类
class TableSchema
: ITable, IInsertTable, IUpdateTable, ITableView {
string Schema { get; }
string Name { get; }
ColumnSchema[] Columns { get; }
ColumnSchema[] Keys { get; }
ColumnSchema? GetColumn(string columName);
}
3. CreateTable功能
ColumnSchema id = new("Id", "INTEGER") { ColumnType = ColumnType.Identity | ColumnType.Key };
ColumnSchema name = new("Name", "TEXT");
TableSchema table = new("Students", [id, name]);
CreateTable create = new(table);
// CREATE TABLE "Students"("Id" INTEGER PRIMARY KEY AUTOINCREMENT,"Name" TEXT)
4. DropTable功能
var drop = new DropTable("Students");
// DROP TABLE "Students"
5. 其他功能与Table类似