mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-15 18:55:07 +08:00
-
This commit is contained in:
@@ -100,10 +100,10 @@ namespace SqlSugar
|
||||
{
|
||||
var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList();
|
||||
var isSingle = groupList.Count() == 1;
|
||||
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.ColumnName)));
|
||||
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.DbColumnName)));
|
||||
if (isSingle)
|
||||
{
|
||||
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.ColumnName));
|
||||
string columnParametersString = string.Join(",", this.DbColumnInfoList.Select(it => Builder.SqlParameterKeyWord + it.DbColumnName));
|
||||
return string.Format(SqlTemplate, GetTableNameString, columnsString, columnParametersString);
|
||||
}
|
||||
else {
|
||||
@@ -122,7 +122,7 @@ namespace SqlSugar
|
||||
{
|
||||
batchInsetrSql.Append(SqlTemplateBatchUnion);
|
||||
}
|
||||
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value), it.ColumnName))));
|
||||
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value), it.DbColumnName))));
|
||||
++i;
|
||||
}
|
||||
pageIndex++;
|
||||
|
@@ -26,6 +26,7 @@ namespace SqlSugar
|
||||
public List<string> WhereValues { get; set; }
|
||||
public List<KeyValuePair<string, string>> SetValues { get; set; }
|
||||
public bool IsUpdateNull { get; set; }
|
||||
public List<string> PrimaryKeys { get; set; }
|
||||
|
||||
public virtual string SqlTemplate
|
||||
{
|
||||
@@ -89,9 +90,6 @@ namespace SqlSugar
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public List<string> PrimaryKeys { get; internal set; }
|
||||
|
||||
public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType, bool isMapping = true)
|
||||
{
|
||||
ILambdaExpressions resolveExpress = this.LambdaExpressions;
|
||||
@@ -112,7 +110,17 @@ namespace SqlSugar
|
||||
{
|
||||
var groupList = DbColumnInfoList.GroupBy(it => it.TableId).ToList();
|
||||
var isSingle = groupList.Count() == 1;
|
||||
string columnsString = string.Join(",", groupList.First().Select(it => Builder.GetTranslationColumnName(it.ColumnName) + "=" + this.Context.Ado.SqlParameterKeyWord + it.ColumnName));
|
||||
string columnsString = string.Join(",", groupList.First().Select(it =>
|
||||
{
|
||||
if (SetValues.IsValuable()) {
|
||||
var setValue = SetValues.Where(sv => sv.Key == Builder.GetTranslationColumnName(it.DbColumnName));
|
||||
if (setValue != null&& setValue.Any()) {
|
||||
return setValue.First().Value;
|
||||
}
|
||||
}
|
||||
var result = Builder.GetTranslationColumnName(it.DbColumnName) + "=" + this.Context.Ado.SqlParameterKeyWord + it.DbColumnName;
|
||||
return result;
|
||||
}));
|
||||
if (isSingle)
|
||||
{
|
||||
string whereString = null;
|
||||
@@ -125,7 +133,7 @@ namespace SqlSugar
|
||||
whereString += item;
|
||||
}
|
||||
}
|
||||
else if(PrimaryKeys.IsValuable())
|
||||
else if (PrimaryKeys.IsValuable())
|
||||
{
|
||||
foreach (var item in PrimaryKeys)
|
||||
{
|
||||
@@ -156,7 +164,7 @@ namespace SqlSugar
|
||||
{
|
||||
batchInsetrSql.Append(SqlTemplateBatchUnion);
|
||||
}
|
||||
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value), it.ColumnName))));
|
||||
batchInsetrSql.Append("\r\n SELECT " + string.Join(",", columns.Select(it => string.Format(SqlTemplateBatchSelect, FormatValue(it.Value), it.DbColumnName))));
|
||||
++i;
|
||||
}
|
||||
pageIndex++;
|
||||
|
@@ -35,13 +35,13 @@ namespace SqlSugar
|
||||
public virtual List<string> GetIsIdentities(string tableName)
|
||||
{
|
||||
var result = GetColumnInfosByTableName(tableName).Where(it => it.IsIdentity).ToList();
|
||||
return result.Select(it => it.ColumnName).ToList();
|
||||
return result.Select(it => it.DbColumnName).ToList();
|
||||
}
|
||||
|
||||
public virtual List<string> GetPrimaries(string tableName)
|
||||
{
|
||||
var result = GetColumnInfosByTableName(tableName).Where(it => it.IsPrimarykey).ToList();
|
||||
return result.Select(it => it.ColumnName).ToList();
|
||||
return result.Select(it => it.DbColumnName).ToList();
|
||||
}
|
||||
|
||||
public bool AddColumnToTable(string tableName, DbColumnInfo column)
|
||||
|
@@ -50,19 +50,19 @@ namespace SqlSugar
|
||||
public IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.EntityPropertyName)).ToList();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
public IInsertable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
|
||||
{
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.EntityPropertyName)).ToList();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
public IInsertable<T> InsertColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => ignoreColumns.Contains(it.EntityPropertyName)).ToList();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace SqlSugar
|
||||
{
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it =>
|
||||
{
|
||||
return !identities.Any(i => it.ColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase));
|
||||
return !identities.Any(i => it.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase));
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
@@ -105,7 +105,7 @@ namespace SqlSugar
|
||||
var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.EntityName).ToList();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it =>
|
||||
{
|
||||
return !currentIgnoreColumns.Any(i => it.EntityPropertyName.Equals(i.EntityPropertyName, StringComparison.CurrentCulture));
|
||||
return !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.EntityPropertyName, StringComparison.CurrentCulture));
|
||||
}).ToList();
|
||||
}
|
||||
#endregion
|
||||
@@ -114,7 +114,7 @@ namespace SqlSugar
|
||||
foreach (var item in this.InsertBuilder.DbColumnInfoList)
|
||||
{
|
||||
if (this.InsertBuilder.Parameters == null) this.InsertBuilder.Parameters = new List<SugarParameter>();
|
||||
this.InsertBuilder.Parameters.Add(new SugarParameter(this.SqlBuilder.SqlParameterKeyWord + item.ColumnName, item.Value));
|
||||
this.InsertBuilder.Parameters.Add(new SugarParameter(this.SqlBuilder.SqlParameterKeyWord + item.DbColumnName, item.Value));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -139,8 +139,8 @@ namespace SqlSugar
|
||||
var columnInfo = new DbColumnInfo()
|
||||
{
|
||||
Value = column.PropertyInfo.GetValue(item),
|
||||
ColumnName = GetDbColumnName(column.PropertyName),
|
||||
EntityPropertyName = column.PropertyName,
|
||||
DbColumnName = GetDbColumnName(column.PropertyName),
|
||||
PropertyName = column.PropertyName,
|
||||
TableId = i
|
||||
};
|
||||
insertItem.Add(columnInfo);
|
||||
|
@@ -29,14 +29,14 @@ namespace SqlSugar
|
||||
|
||||
public IUpdateable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
|
||||
{
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.EntityPropertyName)).ToList();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
public IUpdateable<T> IgnoreColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.EntityPropertyName)).ToList();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace SqlSugar
|
||||
public IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => ignoreColumns.Contains(it.EntityPropertyName)).ToList();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -105,8 +105,8 @@ namespace SqlSugar
|
||||
var columnInfo = new DbColumnInfo()
|
||||
{
|
||||
Value = column.PropertyInfo.GetValue(item),
|
||||
ColumnName = GetDbColumnName(column.PropertyName),
|
||||
EntityPropertyName = column.PropertyName,
|
||||
DbColumnName = GetDbColumnName(column.PropertyName),
|
||||
PropertyName = column.PropertyName,
|
||||
TableId = i
|
||||
};
|
||||
insertItem.Add(columnInfo);
|
||||
@@ -126,7 +126,7 @@ namespace SqlSugar
|
||||
{
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it =>
|
||||
{
|
||||
return !identities.Any(i => it.ColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase));
|
||||
return !identities.Any(i => it.DbColumnName.Equals(i, StringComparison.CurrentCultureIgnoreCase));
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
@@ -138,7 +138,7 @@ namespace SqlSugar
|
||||
var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.EntityName).ToList();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it =>
|
||||
{
|
||||
return !currentIgnoreColumns.Any(i => it.EntityPropertyName.Equals(i.EntityPropertyName, StringComparison.CurrentCulture));
|
||||
return !currentIgnoreColumns.Any(i => it.PropertyName.Equals(i.EntityPropertyName, StringComparison.CurrentCulture));
|
||||
}).ToList();
|
||||
}
|
||||
#endregion
|
||||
@@ -147,7 +147,7 @@ namespace SqlSugar
|
||||
foreach (var item in this.UpdateBuilder.DbColumnInfoList)
|
||||
{
|
||||
if (this.UpdateBuilder.Parameters == null) this.UpdateBuilder.Parameters = new List<SugarParameter>();
|
||||
this.UpdateBuilder.Parameters.Add(new SugarParameter(this.SqlBuilder.SqlParameterKeyWord + item.ColumnName, item.Value));
|
||||
this.UpdateBuilder.Parameters.Add(new SugarParameter(this.SqlBuilder.SqlParameterKeyWord + item.DbColumnName, item.Value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -109,7 +109,15 @@ namespace SqlSugar
|
||||
if (thisValue == null || thisValue.Count() == 0) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 有值?(与IsNullOrEmpty相反)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool IsValuable(this IEnumerable<KeyValuePair<string,string>> thisValue)
|
||||
{
|
||||
if (thisValue == null || thisValue.Count() == 0) return false;
|
||||
return true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 是零?
|
||||
/// </summary>
|
||||
|
@@ -8,8 +8,8 @@ namespace SqlSugar
|
||||
{
|
||||
public string TableName { get; set; }
|
||||
public int TableId { get; set; }
|
||||
public string ColumnName { get; set; }
|
||||
public string EntityPropertyName { get; set; }
|
||||
public string DbColumnName { get; set; }
|
||||
public string PropertyName { get; set; }
|
||||
public string DataType { get; set; }
|
||||
public int Length { get; set; }
|
||||
public string ColumnDescription { get; set; }
|
||||
|
@@ -38,7 +38,7 @@ namespace SqlSugar
|
||||
{
|
||||
string sql = @"SELECT Sysobjects.name AS TableName,
|
||||
syscolumns.Id AS TableId,
|
||||
syscolumns.name AS ColumnName,
|
||||
syscolumns.name AS DbColumnName,
|
||||
systypes.name AS DataType,
|
||||
syscolumns.length AS [Length],
|
||||
sys.extended_properties.[value] AS [ColumnDescription],
|
||||
|
Reference in New Issue
Block a user