mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-01 10:10:16 +08:00
-
This commit is contained in:
parent
10d664ceab
commit
58d5e9e8d2
@ -11,14 +11,7 @@ namespace SqlSugar
|
||||
public virtual SqlSugarClient Context { get; set; }
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
private bool _isBackupData = true;
|
||||
private bool _isBackupTable = false;
|
||||
private bool _isDeleteNoExistColumn = true;
|
||||
#endregion
|
||||
|
||||
#region Public methods
|
||||
|
||||
public void InitTables(Type entityType)
|
||||
{
|
||||
var executeResult = Context.Ado.UseTran(() =>
|
||||
@ -90,15 +83,19 @@ namespace SqlSugar
|
||||
{
|
||||
var tableName = GetTableName(entityInfo);
|
||||
var dbColumns = this.Context.DbMaintenance.GetColumnInfosByTableName(tableName);
|
||||
var errorColumns = dbColumns.Where(dbColumn => !entityInfo.Columns.Any(entityCoulmn => dbColumn.DbColumnName.Equals(entityCoulmn.DbColumnName))).ToList();
|
||||
var droupColumns = dbColumns.Where(dbColumn => !entityInfo.Columns.Any(entityCoulmn => dbColumn.DbColumnName.Equals(entityCoulmn.DbColumnName))).ToList();
|
||||
var addColumns= entityInfo.Columns.Where(entityColumn => !dbColumns.Any(dbColumn => entityColumn.DbColumnName.Equals(dbColumn.DbColumnName))).ToList();
|
||||
|
||||
foreach (var item in addColumns)
|
||||
{
|
||||
this.Context.DbMaintenance.AddColumnToTable(tableName,EntityColumnToDbColumn(entityInfo,tableName,item));
|
||||
}
|
||||
|
||||
foreach (var item in droupColumns)
|
||||
{
|
||||
this.Context.DbMaintenance.DropColumn(tableName,item.DbColumnName);
|
||||
}
|
||||
}
|
||||
// this.Context.DbMaintenance.CreateTable(tableName, columns);
|
||||
}
|
||||
|
||||
public string GetCreateTableString(EntityInfo entityInfo)
|
||||
@ -136,7 +133,6 @@ namespace SqlSugar
|
||||
ColumnDescription = item.ColumnDescription
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -83,38 +83,6 @@ namespace SqlSugar
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Get Sql
|
||||
public virtual string GetCreateTableSql(string tableName, List<DbColumnInfo> columns)
|
||||
{
|
||||
List<string> columnArray = new List<string>();
|
||||
Check.Exception(columns.IsNullOrEmpty(), "No columns found ");
|
||||
foreach (var item in columns)
|
||||
{
|
||||
string columnName = item.DbColumnName;
|
||||
string dataType = item.DataType;
|
||||
string dataSize = item.Length > 0 ? string.Format("({0})", item.Length) : null;
|
||||
string nullType = item.IsNullable ? this.CreateTableNull : CreateTableNotNull;
|
||||
string primaryKey = item.IsPrimarykey ? this.CreateTablePirmaryKey : null;
|
||||
string identity = item.IsIdentity ? this.CreateTableIdentity : null;
|
||||
string addItem = string.Format(this.CreateTableColumn, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||
columnArray.Add(addItem);
|
||||
}
|
||||
string tableString = string.Format(this.CreateTableSql, tableName, string.Join(",\r\n", columnArray));
|
||||
return tableString;
|
||||
}
|
||||
public virtual string GetAddColumnSql(string tableName, DbColumnInfo columnInfo)
|
||||
{
|
||||
string columnName = columnInfo.DbColumnName;
|
||||
string dataType = columnInfo.DataType;
|
||||
string dataSize = columnInfo.Length > 0 ? string.Format("({0})", columnInfo.Length) : null;
|
||||
string nullType = columnInfo.IsNullable ? this.CreateTableNull : CreateTableNotNull;
|
||||
string primaryKey = columnInfo.IsPrimarykey ? this.CreateTablePirmaryKey : null;
|
||||
string identity = columnInfo.IsIdentity ? this.CreateTableIdentity : null;
|
||||
string result = string.Format(this.AddColumnToTableSql, tableName, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DDL
|
||||
public bool AddColumnToTable(string tableName, DbColumnInfo columnName)
|
||||
{
|
||||
@ -122,7 +90,6 @@ namespace SqlSugar
|
||||
this.Context.Ado.ExecuteCommand(sql);
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual bool CreateTable(string tableName, List<DbColumnInfo> columns)
|
||||
{
|
||||
string sql = GetCreateTableSql(tableName, columns);
|
||||
@ -134,6 +101,10 @@ namespace SqlSugar
|
||||
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
|
||||
return true;
|
||||
}
|
||||
public bool DropColumn(string tableName, string columnName) {
|
||||
this.Context.Ado.ExecuteCommand(string.Format(this.DropColumnToTableSql, tableName,columnName));
|
||||
return true;
|
||||
}
|
||||
public virtual bool TruncateTable(string tableName)
|
||||
{
|
||||
this.Context.Ado.ExecuteCommand(string.Format(this.TruncateTableSql, tableName));
|
||||
@ -169,6 +140,35 @@ namespace SqlSugar
|
||||
return reval;
|
||||
});
|
||||
}
|
||||
private string GetCreateTableSql(string tableName, List<DbColumnInfo> columns)
|
||||
{
|
||||
List<string> columnArray = new List<string>();
|
||||
Check.Exception(columns.IsNullOrEmpty(), "No columns found ");
|
||||
foreach (var item in columns)
|
||||
{
|
||||
string columnName = item.DbColumnName;
|
||||
string dataType = item.DataType;
|
||||
string dataSize = item.Length > 0 ? string.Format("({0})", item.Length) : null;
|
||||
string nullType = item.IsNullable ? this.CreateTableNull : CreateTableNotNull;
|
||||
string primaryKey = item.IsPrimarykey ? this.CreateTablePirmaryKey : null;
|
||||
string identity = item.IsIdentity ? this.CreateTableIdentity : null;
|
||||
string addItem = string.Format(this.CreateTableColumn, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||
columnArray.Add(addItem);
|
||||
}
|
||||
string tableString = string.Format(this.CreateTableSql, tableName, string.Join(",\r\n", columnArray));
|
||||
return tableString;
|
||||
}
|
||||
private string GetAddColumnSql(string tableName, DbColumnInfo columnInfo)
|
||||
{
|
||||
string columnName = columnInfo.DbColumnName;
|
||||
string dataType = columnInfo.DataType;
|
||||
string dataSize = columnInfo.Length > 0 ? string.Format("({0})", columnInfo.Length) : null;
|
||||
string nullType = columnInfo.IsNullable ? this.CreateTableNull : CreateTableNotNull;
|
||||
string primaryKey = columnInfo.IsPrimarykey ? this.CreateTablePirmaryKey : null;
|
||||
string identity = columnInfo.IsIdentity ? this.CreateTableIdentity : null;
|
||||
string result = string.Format(this.AddColumnToTableSql, tableName, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ namespace SqlSugar
|
||||
protected abstract string BackupTableSql { get; }
|
||||
protected abstract string TruncateTableSql { get; }
|
||||
protected abstract string DropTableSql { get; }
|
||||
protected abstract string DropColumnToTableSql { get; }
|
||||
#endregion
|
||||
|
||||
#region Scattered
|
||||
|
@ -27,11 +27,6 @@ namespace SqlSugar
|
||||
bool IsIdentity(string tableName, string column);
|
||||
#endregion
|
||||
|
||||
#region Get Sql
|
||||
string GetCreateTableSql(string tableName, List<DbColumnInfo> columns);
|
||||
string GetAddColumnSql(string tableName, DbColumnInfo columnName);
|
||||
#endregion
|
||||
|
||||
#region DDL
|
||||
bool DropTable(string tableName);
|
||||
bool TruncateTable(string tableName);
|
||||
@ -41,6 +36,7 @@ namespace SqlSugar
|
||||
bool AddColumnToTable(string tableName, DbColumnInfo column);
|
||||
|
||||
bool BackupDataBase(string databaseName,string fullFileName);
|
||||
bool DropColumn(string tableName,string columnName);
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -131,7 +131,13 @@ namespace SqlSugar
|
||||
return "DROP TABLE {0}";
|
||||
}
|
||||
}
|
||||
|
||||
protected override string DropColumnToTableSql
|
||||
{
|
||||
get
|
||||
{
|
||||
return "ALTER TABLE {0} DROP COLUMN {1}";
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Scattered
|
||||
|
Loading…
Reference in New Issue
Block a user