mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-23 04:23:47 +08:00
Code First
This commit is contained in:
@@ -80,14 +80,26 @@ namespace SqlSugar
|
||||
var dbColumns = this.Context.DbMaintenance.GetColumnInfosByTableName(tableName);
|
||||
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 alterColumns = dbColumns.Where(dbColumn => entityInfo.Columns
|
||||
.Any(entityCoulmn =>
|
||||
dbColumn.DbColumnName.Equals(entityCoulmn.DbColumnName)
|
||||
&&((entityCoulmn.Length!=dbColumn.Length&&PubMethod.GetUnderType(entityCoulmn.PropertyInfo).IsIn(PubConst.StringType))||entityCoulmn.IsNullable!=dbColumn.IsNullable)
|
||||
)).ToList();
|
||||
foreach (var item in addColumns)
|
||||
{
|
||||
this.Context.DbMaintenance.AddColumnToTable(tableName,EntityColumnToDbColumn(entityInfo,tableName,item));
|
||||
this.Context.DbMaintenance.AddColumn(tableName,EntityColumnToDbColumn(entityInfo,tableName,item));
|
||||
}
|
||||
foreach (var item in droupColumns)
|
||||
{
|
||||
this.Context.DbMaintenance.DropColumn(tableName,item.DbColumnName);
|
||||
}
|
||||
foreach (var item in alterColumns)
|
||||
{
|
||||
var newitem = this.Context.RewritableMethods.TranslateCopy(item);
|
||||
newitem.IsPrimarykey = false;
|
||||
newitem.IsIdentity = false;
|
||||
this.Context.DbMaintenance.UpdateColumn(tableName, newitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
@@ -86,12 +86,17 @@ namespace SqlSugar
|
||||
this.Context.Ado.ExecuteCommand(sql);
|
||||
return true;
|
||||
}
|
||||
public virtual bool AddColumnToTable(string tableName, DbColumnInfo columnInfo)
|
||||
public virtual bool AddColumn(string tableName, DbColumnInfo columnInfo)
|
||||
{
|
||||
string sql = GetAddColumnSql(tableName, columnInfo);
|
||||
this.Context.Ado.ExecuteCommand(sql);
|
||||
return true;
|
||||
}
|
||||
public virtual bool UpdateColumn(string tableName, DbColumnInfo column) {
|
||||
string sql = GetUpdateColumnSql(tableName,column);
|
||||
this.Context.Ado.ExecuteCommand(sql);
|
||||
return true;
|
||||
}
|
||||
public virtual bool CreateTable(string tableName, List<DbColumnInfo> columns)
|
||||
{
|
||||
string sql = GetCreateTableSql(tableName, columns);
|
||||
@@ -183,6 +188,17 @@ namespace SqlSugar
|
||||
string result = string.Format(this.AddColumnToTableSql, tableName, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||
return result;
|
||||
}
|
||||
private string GetUpdateColumnSql(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.AlterColumnToTableSql, tableName, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@@ -27,7 +27,8 @@ namespace SqlSugar
|
||||
bool DropTable(string tableName);
|
||||
bool TruncateTable(string tableName);
|
||||
bool CreateTable(string tableName, List<DbColumnInfo> columns);
|
||||
bool AddColumnToTable(string tableName, DbColumnInfo column);
|
||||
bool AddColumn(string tableName, DbColumnInfo column);
|
||||
bool UpdateColumn(string tableName, DbColumnInfo column);
|
||||
bool AddPrimaryKey(string tableName,string columnName);
|
||||
bool DropConstraint(string tableName, string constraintName);
|
||||
bool BackupDataBase(string databaseName,string fullFileName);
|
||||
|
@@ -93,7 +93,7 @@ namespace SqlSugar
|
||||
{
|
||||
get
|
||||
{
|
||||
return "ALTER TABLE {0} ALTER COLUMN {1}{2} {3} ";
|
||||
return "ALTER TABLE {0} ALTER COLUMN {1} {2}{3} {4} {5} {6}";
|
||||
}
|
||||
}
|
||||
protected override string BackupDataBaseSql
|
||||
|
Reference in New Issue
Block a user