mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
- 修复 AsTable 不受 UseSyncStructureToLower/ToUpper 设置的 bug;#89
This commit is contained in:
@ -126,6 +126,18 @@ namespace FreeSql.Internal.CommonProvider
|
||||
public IDelete<T1> WhereExists<TEntity2>(ISelect<TEntity2> select, bool notExists = false) where TEntity2 : class => this.Where($"{(notExists ? "NOT " : "")}EXISTS({select.ToSql("1")})");
|
||||
public IDelete<T1> WhereDynamic(object dywhere) => this.Where(_commonUtils.WhereObject(_table, "", dywhere));
|
||||
|
||||
protected string TableRuleInvoke()
|
||||
{
|
||||
if (_tableRule == null) return _table.DbName;
|
||||
var newname = _tableRule(_table.DbName);
|
||||
if (!string.IsNullOrEmpty(newname))
|
||||
{
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) return newname.ToLower();
|
||||
if (_orm.CodeFirst.IsSyncStructureToUpper) return newname.ToUpper();
|
||||
return newname;
|
||||
}
|
||||
return _table.DbName;
|
||||
}
|
||||
public IDelete<T1> AsTable(Func<string, string> tableRule)
|
||||
{
|
||||
_tableRule = tableRule;
|
||||
@ -141,6 +153,6 @@ namespace FreeSql.Internal.CommonProvider
|
||||
return this;
|
||||
}
|
||||
|
||||
public string ToSql() => _whereTimes <= 0 ? null : new StringBuilder().Append("DELETE FROM ").Append(_commonUtils.QuoteSqlName(_tableRule?.Invoke(_table.DbName) ?? _table.DbName)).Append(" WHERE ").Append(_where).ToString();
|
||||
public string ToSql() => _whereTimes <= 0 ? null : new StringBuilder().Append("DELETE FROM ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" WHERE ").Append(_where).ToString();
|
||||
}
|
||||
}
|
||||
|
@ -548,6 +548,18 @@ namespace FreeSql.Internal.CommonProvider
|
||||
return this;
|
||||
}
|
||||
|
||||
protected string TableRuleInvoke()
|
||||
{
|
||||
if (_tableRule == null) return _table.DbName;
|
||||
var newname = _tableRule(_table.DbName);
|
||||
if (!string.IsNullOrEmpty(newname))
|
||||
{
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) return newname.ToLower();
|
||||
if (_orm.CodeFirst.IsSyncStructureToUpper) return newname.ToUpper();
|
||||
return newname;
|
||||
}
|
||||
return _table.DbName;
|
||||
}
|
||||
public IInsert<T1> AsTable(Func<string, string> tableRule)
|
||||
{
|
||||
_tableRule = tableRule;
|
||||
@ -567,7 +579,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{
|
||||
if (_source == null || _source.Any() == false) return null;
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("INSERT INTO ").Append(_commonUtils.QuoteSqlName(_tableRule?.Invoke(_table.DbName) ?? _table.DbName)).Append("(");
|
||||
sb.Append("INSERT INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append("(");
|
||||
var colidx = 0;
|
||||
foreach (var col in _table.Columns.Values)
|
||||
{
|
||||
|
@ -912,7 +912,12 @@ namespace FreeSql.Internal.CommonProvider
|
||||
foreach (var tr in _tableRules)
|
||||
{
|
||||
var newname = tr?.Invoke(type, oldname);
|
||||
if (!string.IsNullOrEmpty(newname)) newnames.Add(newname);
|
||||
if (!string.IsNullOrEmpty(newname))
|
||||
{
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) newnames.Add(newname.ToLower());
|
||||
else if (_orm.CodeFirst.IsSyncStructureToUpper) newnames.Add(newname.ToUpper());
|
||||
else newnames.Add(newname);
|
||||
}
|
||||
}
|
||||
if (newnames.Any() == false) return new[] { oldname };
|
||||
return newnames.Distinct().ToArray();
|
||||
|
@ -600,6 +600,18 @@ namespace FreeSql.Internal.CommonProvider
|
||||
protected abstract void ToSqlWhen(StringBuilder sb, ColumnInfo[] primarys, object d);
|
||||
protected virtual void ToSqlCaseWhenEnd(StringBuilder sb, ColumnInfo col) { }
|
||||
|
||||
protected string TableRuleInvoke()
|
||||
{
|
||||
if (_tableRule == null) return _table.DbName;
|
||||
var newname = _tableRule(_table.DbName);
|
||||
if (!string.IsNullOrEmpty(newname))
|
||||
{
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) return newname.ToLower();
|
||||
if (_orm.CodeFirst.IsSyncStructureToUpper) return newname.ToUpper();
|
||||
return newname;
|
||||
}
|
||||
return _table.DbName;
|
||||
}
|
||||
public IUpdate<T1> AsTable(Func<string, string> tableRule)
|
||||
{
|
||||
_tableRule = tableRule;
|
||||
@ -620,7 +632,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
if (_where.Length == 0 && _source.Any() == false) return null;
|
||||
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("UPDATE ").Append(_commonUtils.QuoteSqlName(_tableRule?.Invoke(_table.DbName) ?? _table.DbName)).Append(" SET ");
|
||||
sb.Append("UPDATE ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" SET ");
|
||||
|
||||
if (_set.Length > 0)
|
||||
{ //指定 set 更新
|
||||
|
Reference in New Issue
Block a user