Browse Source

Support Unique Index

pull/1/head
neil 4 years ago
parent
commit
e01c108597
  1. 4
      Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs
  2. 1
      Src/Asp.Net/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs
  3. 1
      Src/Asp.Net/SqlSugar/Entities/EntityColumnInfo.cs
  4. 2
      Src/Asp.Net/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs
  5. 2
      Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs
  6. 14
      Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs
  7. 2
      Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs
  8. 6
      Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs
  9. 2
      Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs
  10. 2
      Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs
  11. 4
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs
  12. 1
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs
  13. 1
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/EntityColumnInfo.cs
  14. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs
  15. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/IDbMaintenance.cs
  16. 6
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs
  17. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs
  18. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs
  19. 6
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs
  20. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs
  21. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs

4
Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs

@ -302,9 +302,9 @@ namespace SqlSugar
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }
public virtual bool CreateIndex(string tableName, string[] columnNames) public virtual bool CreateIndex(string tableName, string[] columnNames, bool isUnique=false)
{ {
string sql = string.Format(CreateIndexSql,tableName,string.Join(",",columnNames), string.Join("_", columnNames)); string sql = string.Format(CreateIndexSql,tableName,string.Join(",",columnNames), string.Join("_", columnNames), isUnique ? "UNIQUE" : "");
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }

1
Src/Asp.Net/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs

@ -193,6 +193,7 @@ namespace SqlSugar
column.NoSerialize = sugarColumn.NoSerialize; column.NoSerialize = sugarColumn.NoSerialize;
column.DefaultValue = sugarColumn.DefaultValue; column.DefaultValue = sugarColumn.DefaultValue;
column.IndexGroupNameList = sugarColumn.IndexGroupNameList; column.IndexGroupNameList = sugarColumn.IndexGroupNameList;
column.UIndexGroupNameList = sugarColumn.UIndexGroupNameList;
column.IsOnlyIgnoreUpdate = sugarColumn.IsOnlyIgnoreUpdate; column.IsOnlyIgnoreUpdate = sugarColumn.IsOnlyIgnoreUpdate;
column.IsArray = sugarColumn.IsArray; column.IsArray = sugarColumn.IsArray;
} }

1
Src/Asp.Net/SqlSugar/Entities/EntityColumnInfo.cs

@ -33,6 +33,7 @@ namespace SqlSugar
public bool IsJson { get; set; } public bool IsJson { get; set; }
public bool NoSerialize { get; set; } public bool NoSerialize { get; set; }
public string[] IndexGroupNameList { get; set; } public string[] IndexGroupNameList { get; set; }
public string[] UIndexGroupNameList { get; set; }
public bool IsArray { get; set; } public bool IsArray { get; set; }
} }
} }

2
Src/Asp.Net/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs

@ -171,6 +171,8 @@ namespace SqlSugar
set { _IndexGroupNameList = value; } set { _IndexGroupNameList = value; }
} }
public string[] UIndexGroupNameList { get; set; }
private bool _IsArray; private bool _IsArray;
public bool IsArray public bool IsArray
{ {

2
Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs

@ -28,7 +28,7 @@ namespace SqlSugar
#region DDL #region DDL
bool AddDefaultValue(string tableName,string columnName,string defaultValue); bool AddDefaultValue(string tableName,string columnName,string defaultValue);
bool CreateIndex(string tableName, string [] columnNames); bool CreateIndex(string tableName, string [] columnNames, bool isUnique=false);
bool DropTable(string tableName); bool DropTable(string tableName);
bool TruncateTable(string tableName); bool TruncateTable(string tableName);
bool TruncateTable<T>(); bool TruncateTable<T>();

14
Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs

@ -62,7 +62,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0}({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0}({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql
@ -271,9 +271,9 @@ namespace SqlSugar
} }
return base.AddColumn(tableName, columnInfo); return base.AddColumn(tableName, columnInfo);
} }
public override bool CreateIndex(string tableName, string[] columnNames) public override bool CreateIndex(string tableName, string[] columnNames, bool isUnique = false)
{ {
string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it => (it + "abc").Substring(0, 3)))); string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it => (it + "abc").Substring(0, 3))), isUnique ? "UNIQUE" : "");
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }
@ -360,7 +360,7 @@ namespace SqlSugar
string sql = "select * from " + SqlBuilder.GetTranslationTableName(tableName) + " WHERE 1=2 "; string sql = "select * from " + SqlBuilder.GetTranslationTableName(tableName) + " WHERE 1=2 ";
var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent; var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent;
this.Context.Ado.IsEnableLogEvent = false; this.Context.Ado.IsEnableLogEvent = false;
using (DbDataReader reader = (DbDataReader)this.Context.Ado.GetDataReader(sql)) using(DbDataReader reader = (DbDataReader) this.Context.Ado.GetDataReader(sql))
{ {
this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; this.Context.Ado.IsEnableLogEvent = oldIsEnableLog;
List<DbColumnInfo> result = new List<DbColumnInfo>(); List<DbColumnInfo> result = new List<DbColumnInfo>();
@ -371,8 +371,8 @@ namespace SqlSugar
{ {
TableName = tableName, TableName = tableName,
DataType = row["DataType"].ToString().Replace("System.", "").Trim(), DataType = row["DataType"].ToString().Replace("System.", "").Trim(),
IsNullable = (bool)row["AllowDBNull"], IsNullable = (bool) row["AllowDBNull"],
IsIdentity = (bool)row["IsIdentity"], IsIdentity = (bool) row["IsIdentity"],
ColumnDescription = GetFieldComment(tableName, row["ColumnName"].ToString()), ColumnDescription = GetFieldComment(tableName, row["ColumnName"].ToString()),
DbColumnName = row["ColumnName"].ToString(), DbColumnName = row["ColumnName"].ToString(),
//DefaultValue = row["defaultValue"].ToString(), //DefaultValue = row["defaultValue"].ToString(),
@ -426,7 +426,7 @@ namespace SqlSugar
var comments = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, var comments = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey,
() => () =>
{ {
string sql = "SELECT TVNAME AS TableName, COLNAME,COMMENT$ AS ColumnDescription from SYSCOLUMNCOMMENTS WHERE TVNAME='"+ tableName.ToUpper() + "' ORDER BY TVNAME"; string sql = "SELECT TVNAME AS TableName, COLNAME,COMMENT$ AS ColumnDescription from SYSCOLUMNCOMMENTS WHERE TVNAME='" + tableName.ToUpper() + "' ORDER BY TVNAME";
var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent; var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent;
this.Context.Ado.IsEnableLogEvent = false; this.Context.Ado.IsEnableLogEvent = false;
var pks = this.Context.Ado.SqlQuery<DbColumnInfo>(sql); var pks = this.Context.Ado.SqlQuery<DbColumnInfo>(sql);

2
Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs

@ -250,7 +250,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0} ({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0} ({1})";
} }
} }

6
Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs

@ -62,7 +62,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0}({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0}({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql
@ -271,9 +271,9 @@ namespace SqlSugar
} }
return base.AddColumn(tableName,columnInfo); return base.AddColumn(tableName,columnInfo);
} }
public override bool CreateIndex(string tableName, string[] columnNames) public override bool CreateIndex(string tableName, string[] columnNames, bool isUnique=false)
{ {
string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it=>(it+"abc").Substring(0,3)))); string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it=>(it+"abc").Substring(0,3))), isUnique ? "UNIQUE" : "");
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }

2
Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs

@ -178,7 +178,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0} ({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0} ({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql

2
Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs

@ -249,7 +249,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE NONCLUSTERED INDEX Index_{0}_{2} ON {0}({1})"; return "CREATE {3} NONCLUSTERED INDEX Index_{0}_{2} ON {0}({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql

4
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs

@ -302,9 +302,9 @@ namespace SqlSugar
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }
public virtual bool CreateIndex(string tableName, string[] columnNames) public virtual bool CreateIndex(string tableName, string[] columnNames, bool isUnique = false)
{ {
string sql = string.Format(CreateIndexSql,tableName,string.Join(",",columnNames), string.Join("_", columnNames)); string sql = string.Format(CreateIndexSql,tableName,string.Join(",",columnNames), string.Join("_", columnNames), isUnique ? "UNIQUE" : "");
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }

1
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs

@ -193,6 +193,7 @@ namespace SqlSugar
column.NoSerialize = sugarColumn.NoSerialize; column.NoSerialize = sugarColumn.NoSerialize;
column.DefaultValue = sugarColumn.DefaultValue; column.DefaultValue = sugarColumn.DefaultValue;
column.IndexGroupNameList = sugarColumn.IndexGroupNameList; column.IndexGroupNameList = sugarColumn.IndexGroupNameList;
column.UIndexGroupNameList = sugarColumn.UIndexGroupNameList;
column.IsOnlyIgnoreUpdate = sugarColumn.IsOnlyIgnoreUpdate; column.IsOnlyIgnoreUpdate = sugarColumn.IsOnlyIgnoreUpdate;
column.IsArray = sugarColumn.IsArray; column.IsArray = sugarColumn.IsArray;
} }

1
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/EntityColumnInfo.cs

@ -33,6 +33,7 @@ namespace SqlSugar
public bool IsJson { get; set; } public bool IsJson { get; set; }
public bool NoSerialize { get; set; } public bool NoSerialize { get; set; }
public string[] IndexGroupNameList { get; set; } public string[] IndexGroupNameList { get; set; }
public string[] UIndexGroupNameList { get; set; }
public bool IsArray { get; set; } public bool IsArray { get; set; }
} }
} }

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs

@ -171,6 +171,8 @@ namespace SqlSugar
set { _IndexGroupNameList = value; } set { _IndexGroupNameList = value; }
} }
public string[] UIndexGroupNameList { get; set; }
private bool _IsArray; private bool _IsArray;
public bool IsArray public bool IsArray
{ {

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/IDbMaintenance.cs

@ -28,7 +28,7 @@ namespace SqlSugar
#region DDL #region DDL
bool AddDefaultValue(string tableName,string columnName,string defaultValue); bool AddDefaultValue(string tableName,string columnName,string defaultValue);
bool CreateIndex(string tableName, string [] columnNames); bool CreateIndex(string tableName, string [] columnNames, bool isUnique=false);
bool DropTable(string tableName); bool DropTable(string tableName);
bool TruncateTable(string tableName); bool TruncateTable(string tableName);
bool TruncateTable<T>(); bool TruncateTable<T>();

6
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs

@ -62,7 +62,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0}({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0}({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql
@ -271,9 +271,9 @@ namespace SqlSugar
} }
return base.AddColumn(tableName, columnInfo); return base.AddColumn(tableName, columnInfo);
} }
public override bool CreateIndex(string tableName, string[] columnNames) public override bool CreateIndex(string tableName, string[] columnNames, bool isUnique = false)
{ {
string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it => (it + "abc").Substring(0, 3)))); string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it => (it + "abc").Substring(0, 3))), isUnique ? "UNIQUE" : "");
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs

@ -178,7 +178,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0} ({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0} ({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs

@ -250,7 +250,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0} ({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0} ({1})";
} }
} }

6
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs

@ -62,7 +62,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0}({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0}({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql
@ -271,9 +271,9 @@ namespace SqlSugar
} }
return base.AddColumn(tableName,columnInfo); return base.AddColumn(tableName,columnInfo);
} }
public override bool CreateIndex(string tableName, string[] columnNames) public override bool CreateIndex(string tableName, string[] columnNames, bool isUnique=false)
{ {
string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it=>(it+"abc").Substring(0,3)))); string sql = string.Format(CreateIndexSql, tableName, string.Join(",", columnNames), string.Join("_", columnNames.Select(it=>(it+"abc").Substring(0,3))), isUnique ? "UNIQUE" : "");
this.Context.Ado.ExecuteCommand(sql); this.Context.Ado.ExecuteCommand(sql);
return true; return true;
} }

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs

@ -178,7 +178,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE INDEX Index_{0}_{2} ON {0} ({1})"; return "CREATE {3} INDEX Index_{0}_{2} ON {0} ({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs

@ -249,7 +249,7 @@ namespace SqlSugar
{ {
get get
{ {
return "CREATE NONCLUSTERED INDEX Index_{0}_{2} ON {0}({1})"; return "CREATE {3} NONCLUSTERED INDEX Index_{0}_{2} ON {0}({1})";
} }
} }
protected override string AddDefaultValueSql protected override string AddDefaultValueSql

Loading…
Cancel
Save