mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
- 增加 FreeSqlBuilder UseQuoteSqlName 设置不使用 [] `` "" 限定符号;
This commit is contained in:
@ -1336,7 +1336,7 @@
|
||||
</summary>
|
||||
<param name="dataType">数据库类型</param>
|
||||
<param name="connectionString">数据库连接串</param>
|
||||
<param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场</param>
|
||||
<param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场<para></para>例如:typeof(FreeSql.SqlServer.SqlServerProvider<>)</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.FreeSqlBuilder.UseSlave(System.String[])">
|
||||
@ -1352,7 +1352,7 @@
|
||||
</summary>
|
||||
<param name="dataType">数据库类型</param>
|
||||
<param name="connectionFactory">数据库连接对象创建器</param>
|
||||
<param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场</param>
|
||||
<param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场<para></para>例如:typeof(FreeSql.SqlServer.SqlServerProvider<>)</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.FreeSqlBuilder.UseAutoSyncStructure(System.Boolean)">
|
||||
@ -1439,29 +1439,6 @@
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.FreeSqlBuilder.UseSyncStructureToLower(System.Boolean)">
|
||||
<summary>
|
||||
转小写同步结构
|
||||
</summary>
|
||||
<param name="value">true:转小写, false:不转</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.FreeSqlBuilder.UseSyncStructureToUpper(System.Boolean)">
|
||||
<summary>
|
||||
转大写同步结构
|
||||
</summary>
|
||||
<param name="value">true:转大写, false:不转</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.FreeSqlBuilder.UseEntityPropertyNameConvert(FreeSql.Internal.StringConvertType)">
|
||||
<summary>
|
||||
自动转换实体属性名称 Entity Property -> Db Filed
|
||||
<para></para>
|
||||
*不会覆盖 [Column] 特性设置的Name
|
||||
</summary>
|
||||
<param name="convertType"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDelete`1.WithTransaction(System.Data.Common.DbTransaction)">
|
||||
<summary>
|
||||
指定事务对象
|
||||
@ -4174,46 +4151,6 @@
|
||||
BigApple -> bigapple
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Internal.StringConvertType.None">
|
||||
<summary>
|
||||
不进行任何处理
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Internal.StringConvertType.PascalCaseToUnderscore">
|
||||
<summary>
|
||||
将帕斯卡命名字符串转换为下划线分隔字符串
|
||||
<para></para>
|
||||
BigApple -> Big_Apple
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Internal.StringConvertType.PascalCaseToUnderscoreWithUpper">
|
||||
<summary>
|
||||
将帕斯卡命名字符串转换为下划线分隔字符串,且转换为全大写
|
||||
<para></para>
|
||||
BigApple -> BIG_APPLE
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Internal.StringConvertType.PascalCaseToUnderscoreWithLower">
|
||||
<summary>
|
||||
将帕斯卡命名字符串转换为下划线分隔字符串,且转换为全小写
|
||||
<para></para>
|
||||
BigApple -> big_apple
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Internal.StringConvertType.Upper">
|
||||
<summary>
|
||||
将字符串转换为大写
|
||||
<para></para>
|
||||
BigApple -> BIGAPPLE
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Internal.StringConvertType.Lower">
|
||||
<summary>
|
||||
将字符串转换为小写
|
||||
<para></para>
|
||||
BigApple -> bigapple
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.GlobalFilter.Apply``1(System.String,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
|
||||
<summary>
|
||||
创建一个过滤器<para></para>
|
||||
|
@ -18,15 +18,13 @@ namespace FreeSql
|
||||
int[] _slaveWeights;
|
||||
Func<DbConnection> _connectionFactory;
|
||||
bool _isAutoSyncStructure = false;
|
||||
bool _isSyncStructureToLower = false;
|
||||
bool _isSyncStructureToUpper = false;
|
||||
bool _isConfigEntityFromDbFirst = false;
|
||||
bool _isNoneCommandParameter = false;
|
||||
bool _isGenerateCommandParameterWithLambda = false;
|
||||
bool _isLazyLoading = false;
|
||||
bool _isExitAutoDisposePool = true;
|
||||
bool _isQuoteSqlName = true;
|
||||
MappingPriorityType[] _mappingPriorityTypes;
|
||||
StringConvertType _entityPropertyConvertType = StringConvertType.None;
|
||||
NameConvertType _nameConvertType = NameConvertType.None;
|
||||
Action<DbCommand> _aopCommandExecuting = null;
|
||||
Action<DbCommand, string> _aopCommandExecuted = null;
|
||||
@ -37,7 +35,7 @@ namespace FreeSql
|
||||
/// </summary>
|
||||
/// <param name="dataType">数据库类型</param>
|
||||
/// <param name="connectionString">数据库连接串</param>
|
||||
/// <param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场</param>
|
||||
/// <param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场<para></para>例如:typeof(FreeSql.SqlServer.SqlServerProvider<>)</param>
|
||||
/// <returns></returns>
|
||||
public FreeSqlBuilder UseConnectionString(DataType dataType, string connectionString, Type providerType = null)
|
||||
{
|
||||
@ -69,7 +67,7 @@ namespace FreeSql
|
||||
/// </summary>
|
||||
/// <param name="dataType">数据库类型</param>
|
||||
/// <param name="connectionFactory">数据库连接对象创建器</param>
|
||||
/// <param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场</param>
|
||||
/// <param name="providerType">提供者的类型,一般不需要指定,如果一直提示“缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载”的错误,说明反射获取不到类型,此时该参数可排上用场<para></para>例如:typeof(FreeSql.SqlServer.SqlServerProvider<>)</param>
|
||||
/// <returns></returns>
|
||||
public FreeSqlBuilder UseConnectionFactory(DataType dataType, Func<DbConnection> connectionFactory, Type providerType = null)
|
||||
{
|
||||
@ -161,6 +159,11 @@ namespace FreeSql
|
||||
_nameConvertType = convertType;
|
||||
return this;
|
||||
}
|
||||
public FreeSqlBuilder UseQuoteSqlName(bool value)
|
||||
{
|
||||
_isQuoteSqlName = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 指定映射优先级<para></para>
|
||||
@ -337,8 +340,6 @@ namespace FreeSql
|
||||
{
|
||||
ret.CodeFirst.IsAutoSyncStructure = _isAutoSyncStructure;
|
||||
|
||||
ret.CodeFirst.IsSyncStructureToLower = _isSyncStructureToLower;
|
||||
ret.CodeFirst.IsSyncStructureToUpper = _isSyncStructureToUpper;
|
||||
ret.CodeFirst.IsConfigEntityFromDbFirst = _isConfigEntityFromDbFirst;
|
||||
ret.CodeFirst.IsNoneCommandParameter = _isNoneCommandParameter;
|
||||
ret.CodeFirst.IsGenerateCommandParameterWithLambda = _isGenerateCommandParameterWithLambda;
|
||||
@ -352,7 +353,6 @@ namespace FreeSql
|
||||
if (_aopCommandExecuted != null)
|
||||
ret.Aop.CommandAfter += new EventHandler<Aop.CommandAfterEventArgs>((s, e) => _aopCommandExecuted?.Invoke(e.Command, e.Log));
|
||||
|
||||
this.EntityPropertyNameConvert(ret);
|
||||
//添加实体属性名全局AOP转换处理
|
||||
if (_nameConvertType != NameConvertType.None)
|
||||
{
|
||||
@ -517,6 +517,8 @@ namespace FreeSql
|
||||
if (_slaveWeights != null)
|
||||
for (var x = 0; x < _slaveWeights.Length; x++)
|
||||
ret.Ado.SlavePools[x].Policy.Weight = _slaveWeights[x];
|
||||
|
||||
(ret.Select<object>() as Select0Provider)._commonUtils.IsQuoteSqlName = _isQuoteSqlName;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -1,80 +0,0 @@
|
||||
using System;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using FreeSql.DataAnnotations;
|
||||
using FreeSql.Internal;
|
||||
|
||||
namespace FreeSql
|
||||
{
|
||||
partial class FreeSqlBuilder
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 转小写同步结构
|
||||
/// </summary>
|
||||
/// <param name="value">true:转小写, false:不转</param>
|
||||
/// <returns></returns>
|
||||
[Obsolete("请使用 UseNameConvert(NameConvertType.ToLower),或者 fsql.CodeFirst.IsSyncStructureToLower = value")]
|
||||
public FreeSqlBuilder UseSyncStructureToLower(bool value)
|
||||
{
|
||||
_isSyncStructureToLower = value;
|
||||
return this;
|
||||
}
|
||||
/// <summary>
|
||||
/// 转大写同步结构
|
||||
/// </summary>
|
||||
/// <param name="value">true:转大写, false:不转</param>
|
||||
/// <returns></returns>
|
||||
[Obsolete("请使用 UseNameConvert(NameConvertType.ToUpper),或者 fsql.CodeFirst.IsSyncStructureToUpper = value")]
|
||||
public FreeSqlBuilder UseSyncStructureToUpper(bool value)
|
||||
{
|
||||
_isSyncStructureToUpper = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动转换实体属性名称 Entity Property -> Db Filed
|
||||
/// <para></para>
|
||||
/// *不会覆盖 [Column] 特性设置的Name
|
||||
/// </summary>
|
||||
/// <param name="convertType"></param>
|
||||
/// <returns></returns>
|
||||
[Obsolete("请使用 UseNameConvert 功能")]
|
||||
public FreeSqlBuilder UseEntityPropertyNameConvert(StringConvertType convertType)
|
||||
{
|
||||
_entityPropertyConvertType = convertType;
|
||||
return this;
|
||||
}
|
||||
|
||||
void EntityPropertyNameConvert(IFreeSql fsql)
|
||||
{
|
||||
//添加实体属性名全局AOP转换处理
|
||||
if (_entityPropertyConvertType != StringConvertType.None)
|
||||
{
|
||||
string PascalCaseToUnderScore(string str) => string.IsNullOrWhiteSpace(str) ? str : string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString()));
|
||||
|
||||
switch (_entityPropertyConvertType)
|
||||
{
|
||||
case StringConvertType.Lower:
|
||||
fsql.Aop.ConfigEntityProperty += (_, e) => e.ModifyResult.Name = e.ModifyResult.Name?.ToLower();
|
||||
break;
|
||||
case StringConvertType.Upper:
|
||||
fsql.Aop.ConfigEntityProperty += (_, e) => e.ModifyResult.Name = e.ModifyResult.Name?.ToUpper();
|
||||
break;
|
||||
case StringConvertType.PascalCaseToUnderscore:
|
||||
fsql.Aop.ConfigEntityProperty += (_, e) => e.ModifyResult.Name = PascalCaseToUnderScore(e.ModifyResult.Name);
|
||||
break;
|
||||
case StringConvertType.PascalCaseToUnderscoreWithLower:
|
||||
fsql.Aop.ConfigEntityProperty += (_, e) => e.ModifyResult.Name = PascalCaseToUnderScore(e.ModifyResult.Name)?.ToLower();
|
||||
break;
|
||||
case StringConvertType.PascalCaseToUnderscoreWithUpper:
|
||||
fsql.Aop.ConfigEntityProperty += (_, e) => e.ModifyResult.Name = PascalCaseToUnderScore(e.ModifyResult.Name)?.ToUpper();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -28,7 +28,14 @@ namespace FreeSql.Internal
|
||||
public abstract DbParameter AppendParamter(List<DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value);
|
||||
public abstract DbParameter[] GetDbParamtersByObject(string sql, object obj);
|
||||
public abstract string FormatSql(string sql, params object[] args);
|
||||
public abstract string QuoteSqlName(params string[] name);
|
||||
|
||||
public bool IsQuoteSqlName = true;
|
||||
public string QuoteSqlName(params string[] name) {
|
||||
if (IsQuoteSqlName) return QuoteSqlNameAdapter(name);
|
||||
if (name == null) return "";
|
||||
return string.Join(".", name);
|
||||
}
|
||||
public abstract string QuoteSqlNameAdapter(params string[] name);
|
||||
public abstract string TrimQuoteSqlName(string name);
|
||||
public abstract string[] SplitTableName(string name);
|
||||
public static string[] GetSplitTableNames(string name, char leftQuote, char rightQuote, int size)
|
||||
|
@ -79,47 +79,4 @@ namespace FreeSql.Internal
|
||||
ToLower
|
||||
}
|
||||
|
||||
public enum StringConvertType
|
||||
{
|
||||
/// <summary>
|
||||
/// 不进行任何处理
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 将帕斯卡命名字符串转换为下划线分隔字符串
|
||||
/// <para></para>
|
||||
/// BigApple -> Big_Apple
|
||||
/// </summary>
|
||||
PascalCaseToUnderscore,
|
||||
|
||||
/// <summary>
|
||||
/// 将帕斯卡命名字符串转换为下划线分隔字符串,且转换为全大写
|
||||
/// <para></para>
|
||||
/// BigApple -> BIG_APPLE
|
||||
/// </summary>
|
||||
PascalCaseToUnderscoreWithUpper,
|
||||
|
||||
/// <summary>
|
||||
/// 将帕斯卡命名字符串转换为下划线分隔字符串,且转换为全小写
|
||||
/// <para></para>
|
||||
/// BigApple -> big_apple
|
||||
/// </summary>
|
||||
PascalCaseToUnderscoreWithLower,
|
||||
|
||||
/// <summary>
|
||||
/// 将字符串转换为大写
|
||||
/// <para></para>
|
||||
/// BigApple -> BIGAPPLE
|
||||
/// </summary>
|
||||
Upper,
|
||||
|
||||
/// <summary>
|
||||
/// 将字符串转换为小写
|
||||
/// <para></para>
|
||||
/// BigApple -> bigapple
|
||||
/// </summary>
|
||||
Lower
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user