注意:连接数据库账户需要一定权限才能操作,最好管理员级别的账户
1.建表
2.获取表信息
3.修改表操作
4.创建视图、索引等
5.删除视图、函数、存储过程等。
//例1 获取所有表 var tables = db.DbMaintenance.GetTableInfoList(false);//true 走缓存 false不走缓存 foreach (var table in tables) { Console.WriteLine(table.Description);//输出表信息 //获取列信息 //var columns=db.DbMaintenance.GetColumnInfosByTableName("表名",false); } //例2 db.DbMaintenance.IsAnyTable("tablename",false)//验证表名是否缓存不走缓存
注意:用查询方法时看有没有 isCache重载, true是走缓存,false是不走缓存
注意:用查询方法时看有没有 isCache重载, true是走缓存,false是不走缓存
名称 | 备注 | 返回类型 |
---|---|---|
GetDataBaseList | 获取所有数据库名称 | List |
GetViewInfoList | 查询所有视图 | List |
GetTableInfoList | 获取所有表,查询所有的表 (GetTableInfoList(是否缓存)) | List |
GetColumnInfosByTableName | 获取列根据表名,获取字段,字段信 息GetColumnInfosByTableName(表名,是否缓存) | List |
GetIsIdentities | 获取自增列 | List |
GetPrimaries | 获取主键 | List |
IsAnyTable | 表是否存在,判断表存不存在 ( IsAny(表名,是否缓存)) | bool |
IsAnyColumn | 列是否存在 | bool |
IsPrimaryKey | 主键是否存在 | bool |
IsIdentity | 自增是否存在 | bool |
IsAnyConstraint | 约束是否存在 | bool |
DropTable | 删除表 | bool |
TruncateTable | 清空表 | bool |
CreateTable(看标题3) | 看标题3来实现建表 | bool |
AddColumn | 添加列 | bool |
UpdateColumn | 更新列 | bool |
AddPrimaryKey | 添加主键 | bool |
DropConstraint | 删除约束 | bool |
BackupDataBase | 备份库 | bool |
BackupTable | 备份表 | bool |
DropColumn | 删除列 | bool |
RenameColumn | 重命名列 | bool |
AddDefaultValue | 添加默认值 | bool |
AddTableRemark | 添加表描述,表注释 | bool |
AddColumnRemark | 添加列描述,表注释 | bool |
DeleteColumnRemark | 删除列描述,表注释 | bool |
RenameTable | 重命名表 | bool |
CreateIndex | 创建索引,唯一约束(唯一索引) | bool |
IsAnyIndex | 索引是否存在 | bool |
GetProcList | 获取存储过程名字集合 | List |
GetIndexList | 获取所有索引名字集合 | List |
CreateView(看标题3.3) | 创建视图 5.1.4.106 | bool |
GetFuncList | 获取函数(建函数最好命名有规则有些非自定义的也出来) | List |
DropView | 删除视图 5.1.4.106 | bool |
DropFunc | 删除函数5.1.4.106 | bool |
DropProc | 删除存储过程 5.1.4.106 | bool |
GetDbTypes | 获取数据库类型集合5.1.4.106 | List |
GetTriggerNames | 根据表名获取触发器集合5.1.4.106 | List |
该方法是在无实体的情况下建表 ,并且支持实体AOP
var type = db.DynamicBuilder().CreateClass("UnitEntityA", new SugarTable() { TableDescription = "表备注", //DisabledUpdateAll=true 可以禁止更新只创建 }) .CreateProperty("Id", typeof(int), new SugarColumn() {IsPrimaryKey=true,IsIdentity=true,ColumnDescription="列备注"}) .CreateProperty("Name", typeof(string), new SugarColumn() {Length=200, ColumnDescription = "列备注" }) //如果有ColumnDataType那么类型以ColumnDataType为准ColumnDataType对多库支持差 .CreateProperty("Name2", typeof(string), new SugarColumn() { ColumnDataType="varchar(max)" }) .BuilderType(); db.CodeFirst.InitTables(type);//创建表 //详介说明 //typeof(xx)是多库通过类型会自动根据不同数据库创建相应的数据库类型 //new SugarColumn() { ColumnDataType="varchar(50)" } 可以强制设置数据库类型,会覆盖typeof(xxx) //SugarColumn的说明看文档:迁移
动态拼接和增删查改:https://www.donet5.com/Home/Doc?typeId=2562
db.CodeFirst.InitTables(typeof(T));//具体用法看文档迁移
5.1.4.106-preview22+
//不存在创建,内部有判断 db.QueryableByObject(typeof(Order)).CreateView("view_{0}");
2016 © donet5.comApache Licence 2.0