mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-01 10:10:16 +08:00
Code First
This commit is contained in:
parent
4a1172f4d6
commit
10d664ceab
@ -20,6 +20,7 @@ namespace OrmTest.Demo
|
|||||||
public DateTime? DateTime { get; set; }
|
public DateTime? DateTime { get; set; }
|
||||||
[SugarColumn(IsNullable = true)]
|
[SugarColumn(IsNullable = true)]
|
||||||
public double? Dob { get; set; }
|
public double? Dob { get; set; }
|
||||||
|
public string A { get; set; }
|
||||||
}
|
}
|
||||||
public class CodeFirst : DemoBase
|
public class CodeFirst : DemoBase
|
||||||
{
|
{
|
||||||
@ -32,9 +33,9 @@ namespace OrmTest.Demo
|
|||||||
IsAutoCloseConnection = true,
|
IsAutoCloseConnection = true,
|
||||||
InitKeyType = InitKeyType.Attribute
|
InitKeyType = InitKeyType.Attribute
|
||||||
});
|
});
|
||||||
if (db.DbMaintenance.IsAnyTable("CodeTable"))
|
//if (db.DbMaintenance.IsAnyTable("CodeTable"))
|
||||||
db.DbMaintenance.DropTable("CodeTable");
|
// db.DbMaintenance.DropTable("CodeTable");
|
||||||
db.DbMaintenance.BackupDataBase("SqlSugar4XTest","c:\\back\\1.bak");
|
//db.DbMaintenance.BackupDataBase("SqlSugar4XTest","c:\\back\\1.bak");
|
||||||
db.CodeFirst.InitTables(typeof(CodeTable));
|
db.CodeFirst.InitTables(typeof(CodeTable));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,24 +55,6 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICodeFirst IsBackupData(bool isBackupData = true)
|
|
||||||
{
|
|
||||||
_isBackupData = isBackupData;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ICodeFirst IsBackupTable(bool isBackupTable = false)
|
|
||||||
{
|
|
||||||
_isBackupTable = isBackupTable;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ICodeFirst IsDeleteNoExistColumn(bool isDeleteNoExistColumn = true)
|
|
||||||
{
|
|
||||||
_isDeleteNoExistColumn = isDeleteNoExistColumn;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Core
|
#region Core
|
||||||
@ -95,19 +77,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
foreach (var item in entityInfo.Columns)
|
foreach (var item in entityInfo.Columns)
|
||||||
{
|
{
|
||||||
DbColumnInfo dbColumnInfo = new DbColumnInfo()
|
DbColumnInfo dbColumnInfo = EntityColumnToDbColumn(entityInfo, tableName, item);
|
||||||
{
|
|
||||||
Length = item.Length,
|
|
||||||
DataType = this.Context.Ado.DbBind.GetDbTypeName(PubMethod.GetUnderType(item.PropertyInfo).Name),
|
|
||||||
TableId = entityInfo.Columns.IndexOf(item),
|
|
||||||
DbColumnName = item.DbColumnName.IsValuable() ? item.DbColumnName : item.PropertyName,
|
|
||||||
IsPrimarykey = item.IsPrimarykey,
|
|
||||||
IsIdentity = item.IsIdentity,
|
|
||||||
TableName = tableName,
|
|
||||||
IsNullable = item.IsNullable,
|
|
||||||
DefaultValue = item.DefaultValue,
|
|
||||||
ColumnDescription = item.ColumnDescription
|
|
||||||
};
|
|
||||||
columns.Add(dbColumnInfo);
|
columns.Add(dbColumnInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -116,7 +86,19 @@ namespace SqlSugar
|
|||||||
|
|
||||||
private void ExistLogic(EntityInfo entityInfo)
|
private void ExistLogic(EntityInfo entityInfo)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
if (entityInfo.Columns.IsValuable())
|
||||||
|
{
|
||||||
|
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 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// this.Context.DbMaintenance.CreateTable(tableName, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetCreateTableString(EntityInfo entityInfo)
|
public string GetCreateTableString(EntityInfo entityInfo)
|
||||||
@ -138,6 +120,23 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return entityInfo.DbTableName == null ? entityInfo.EntityName : entityInfo.DbTableName;
|
return entityInfo.DbTableName == null ? entityInfo.EntityName : entityInfo.DbTableName;
|
||||||
}
|
}
|
||||||
|
private DbColumnInfo EntityColumnToDbColumn(EntityInfo entityInfo, string tableName, EntityColumnInfo item)
|
||||||
|
{
|
||||||
|
return new DbColumnInfo()
|
||||||
|
{
|
||||||
|
Length = item.Length,
|
||||||
|
DataType = this.Context.Ado.DbBind.GetDbTypeName(PubMethod.GetUnderType(item.PropertyInfo).Name),
|
||||||
|
TableId = entityInfo.Columns.IndexOf(item),
|
||||||
|
DbColumnName = item.DbColumnName.IsValuable() ? item.DbColumnName : item.PropertyName,
|
||||||
|
IsPrimarykey = item.IsPrimarykey,
|
||||||
|
IsIdentity = item.IsIdentity,
|
||||||
|
TableName = tableName,
|
||||||
|
IsNullable = item.IsNullable,
|
||||||
|
DefaultValue = item.DefaultValue,
|
||||||
|
ColumnDescription = item.ColumnDescription
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,22 +92,35 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
string columnName = item.DbColumnName;
|
string columnName = item.DbColumnName;
|
||||||
string dataType = item.DataType;
|
string dataType = item.DataType;
|
||||||
string dataSize = item.Length > 0 ? string.Format("({0})",item.Length) : null;
|
string dataSize = item.Length > 0 ? string.Format("({0})", item.Length) : null;
|
||||||
string nullType = item.IsNullable ? this.CreateTableNull : CreateTableNotNull;
|
string nullType = item.IsNullable ? this.CreateTableNull : CreateTableNotNull;
|
||||||
string primaryKey =item.IsPrimarykey? this.CreateTablePirmaryKey:null;
|
string primaryKey = item.IsPrimarykey ? this.CreateTablePirmaryKey : null;
|
||||||
string identity = item.IsIdentity? this.CreateTableIdentity:null;
|
string identity = item.IsIdentity ? this.CreateTableIdentity : null;
|
||||||
string addItem= string.Format(this.CreateTableColumn, columnName, dataType, dataSize, nullType, primaryKey,identity);
|
string addItem = string.Format(this.CreateTableColumn, columnName, dataType, dataSize, nullType, primaryKey, identity);
|
||||||
columnArray.Add(addItem);
|
columnArray.Add(addItem);
|
||||||
}
|
}
|
||||||
string tableString = string.Format(this.CreateTableSql,tableName, string.Join(",\r\n", columnArray));
|
string tableString = string.Format(this.CreateTableSql, tableName, string.Join(",\r\n", columnArray));
|
||||||
return tableString;
|
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
|
#endregion
|
||||||
|
|
||||||
#region DDL
|
#region DDL
|
||||||
public bool AddColumnToTable(string tableName, DbColumnInfo columnName)
|
public bool AddColumnToTable(string tableName, DbColumnInfo columnName)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
string sql = GetAddColumnSql(tableName, columnName);
|
||||||
|
this.Context.Ado.ExecuteCommand(sql);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool CreateTable(string tableName, List<DbColumnInfo> columns)
|
public virtual bool CreateTable(string tableName, List<DbColumnInfo> columns)
|
||||||
@ -116,8 +129,9 @@ namespace SqlSugar
|
|||||||
this.Context.Ado.ExecuteCommand(sql);
|
this.Context.Ado.ExecuteCommand(sql);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public bool DropTable(string tableName) {
|
public bool DropTable(string tableName)
|
||||||
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql,tableName));
|
{
|
||||||
|
this.Context.Ado.ExecuteCommand(string.Format(this.DropTableSql, tableName));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public virtual bool TruncateTable(string tableName)
|
public virtual bool TruncateTable(string tableName)
|
||||||
@ -128,8 +142,9 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public bool BackupDataBase(string databaseName, string fullFileName)
|
public bool BackupDataBase(string databaseName, string fullFileName)
|
||||||
{
|
{
|
||||||
var directory=FileHelper.GetDirectoryFromFilePath(fullFileName);
|
var directory = FileHelper.GetDirectoryFromFilePath(fullFileName);
|
||||||
if (!FileHelper.IsExistDirectory(directory)) {
|
if (!FileHelper.IsExistDirectory(directory))
|
||||||
|
{
|
||||||
FileHelper.CreateDirectory(directory);
|
FileHelper.CreateDirectory(directory);
|
||||||
}
|
}
|
||||||
this.Context.Ado.ExecuteCommand(string.Format(this.BackupDataBaseSql, databaseName, fullFileName));
|
this.Context.Ado.ExecuteCommand(string.Format(this.BackupDataBaseSql, databaseName, fullFileName));
|
||||||
|
@ -7,9 +7,6 @@ namespace SqlSugar
|
|||||||
public partial interface ICodeFirst
|
public partial interface ICodeFirst
|
||||||
{
|
{
|
||||||
SqlSugarClient Context { get; set; }
|
SqlSugarClient Context { get; set; }
|
||||||
ICodeFirst IsBackupTable(bool isBackupTable = true);
|
|
||||||
ICodeFirst IsBackupData(bool isBackupData = true);
|
|
||||||
ICodeFirst IsDeleteNoExistColumn(bool isDeleteNoExistColumn = true);
|
|
||||||
void InitTables(string entitiesNamespace);
|
void InitTables(string entitiesNamespace);
|
||||||
void InitTables(string [] entitiesNamespaces);
|
void InitTables(string [] entitiesNamespaces);
|
||||||
void InitTables(Type [] entityTypes);
|
void InitTables(Type [] entityTypes);
|
||||||
|
@ -29,6 +29,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
#region Get Sql
|
#region Get Sql
|
||||||
string GetCreateTableSql(string tableName, List<DbColumnInfo> columns);
|
string GetCreateTableSql(string tableName, List<DbColumnInfo> columns);
|
||||||
|
string GetAddColumnSql(string tableName, DbColumnInfo columnName);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region DDL
|
#region DDL
|
||||||
|
@ -79,7 +79,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return "ALERT TABLE {0} ADD {1} {2} {3}";
|
return "ALERT TABLE {0} ADD {1} {2}{3} {4} {5} {6}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected override string AlterColumnToTableSql
|
protected override string AlterColumnToTableSql
|
||||||
|
Loading…
Reference in New Issue
Block a user