mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-23 04:23:47 +08:00
-
This commit is contained in:
@@ -11,14 +11,7 @@ namespace SqlSugar
|
|||||||
public virtual SqlSugarClient Context { get; set; }
|
public virtual SqlSugarClient Context { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Fields
|
|
||||||
private bool _isBackupData = true;
|
|
||||||
private bool _isBackupTable = false;
|
|
||||||
private bool _isDeleteNoExistColumn = true;
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Public methods
|
#region Public methods
|
||||||
|
|
||||||
public void InitTables(Type entityType)
|
public void InitTables(Type entityType)
|
||||||
{
|
{
|
||||||
var executeResult = Context.Ado.UseTran(() =>
|
var executeResult = Context.Ado.UseTran(() =>
|
||||||
@@ -90,15 +83,19 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
var tableName = GetTableName(entityInfo);
|
var tableName = GetTableName(entityInfo);
|
||||||
var dbColumns = this.Context.DbMaintenance.GetColumnInfosByTableName(tableName);
|
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();
|
var addColumns= entityInfo.Columns.Where(entityColumn => !dbColumns.Any(dbColumn => entityColumn.DbColumnName.Equals(dbColumn.DbColumnName))).ToList();
|
||||||
|
|
||||||
foreach (var item in addColumns)
|
foreach (var item in addColumns)
|
||||||
{
|
{
|
||||||
this.Context.DbMaintenance.AddColumnToTable(tableName,EntityColumnToDbColumn(entityInfo,tableName,item));
|
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)
|
public string GetCreateTableString(EntityInfo entityInfo)
|
||||||
@@ -136,7 +133,6 @@ namespace SqlSugar
|
|||||||
ColumnDescription = item.ColumnDescription
|
ColumnDescription = item.ColumnDescription
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -83,38 +83,6 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
#endregion
|
#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
|
#region DDL
|
||||||
public bool AddColumnToTable(string tableName, DbColumnInfo columnName)
|
public bool AddColumnToTable(string tableName, DbColumnInfo columnName)
|
||||||
{
|
{
|
||||||
@@ -122,7 +90,6 @@ namespace SqlSugar
|
|||||||
this.Context.Ado.ExecuteCommand(sql);
|
this.Context.Ado.ExecuteCommand(sql);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool CreateTable(string tableName, List<DbColumnInfo> columns)
|
public virtual bool CreateTable(string tableName, List<DbColumnInfo> columns)
|
||||||
{
|
{
|
||||||
string sql = GetCreateTableSql(tableName, columns);
|
string sql = GetCreateTableSql(tableName, columns);
|
||||||
@@ -134,6 +101,10 @@ namespace SqlSugar
|
|||||||
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
|
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
|
||||||
return true;
|
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)
|
public virtual bool TruncateTable(string tableName)
|
||||||
{
|
{
|
||||||
this.Context.Ado.ExecuteCommand(string.Format(this.TruncateTableSql, tableName));
|
this.Context.Ado.ExecuteCommand(string.Format(this.TruncateTableSql, tableName));
|
||||||
@@ -169,6 +140,35 @@ namespace SqlSugar
|
|||||||
return reval;
|
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
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,7 @@ namespace SqlSugar
|
|||||||
protected abstract string BackupTableSql { get; }
|
protected abstract string BackupTableSql { get; }
|
||||||
protected abstract string TruncateTableSql { get; }
|
protected abstract string TruncateTableSql { get; }
|
||||||
protected abstract string DropTableSql { get; }
|
protected abstract string DropTableSql { get; }
|
||||||
|
protected abstract string DropColumnToTableSql { get; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Scattered
|
#region Scattered
|
||||||
|
@@ -27,11 +27,6 @@ namespace SqlSugar
|
|||||||
bool IsIdentity(string tableName, string column);
|
bool IsIdentity(string tableName, string column);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Get Sql
|
|
||||||
string GetCreateTableSql(string tableName, List<DbColumnInfo> columns);
|
|
||||||
string GetAddColumnSql(string tableName, DbColumnInfo columnName);
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region DDL
|
#region DDL
|
||||||
bool DropTable(string tableName);
|
bool DropTable(string tableName);
|
||||||
bool TruncateTable(string tableName);
|
bool TruncateTable(string tableName);
|
||||||
@@ -41,6 +36,7 @@ namespace SqlSugar
|
|||||||
bool AddColumnToTable(string tableName, DbColumnInfo column);
|
bool AddColumnToTable(string tableName, DbColumnInfo column);
|
||||||
|
|
||||||
bool BackupDataBase(string databaseName,string fullFileName);
|
bool BackupDataBase(string databaseName,string fullFileName);
|
||||||
|
bool DropColumn(string tableName,string columnName);
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -131,7 +131,13 @@ namespace SqlSugar
|
|||||||
return "DROP TABLE {0}";
|
return "DROP TABLE {0}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
protected override string DropColumnToTableSql
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "ALTER TABLE {0} DROP COLUMN {1}";
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Scattered
|
#region Scattered
|
||||||
|
Reference in New Issue
Block a user