mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-12-01 19:03:58 +08:00
-
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
@@ -14,7 +15,7 @@ namespace SqlSugar
|
||||
protected ICodeFirst _CodeFirst;
|
||||
protected IDbMaintenance _DbMaintenance;
|
||||
protected IDbConnection _DbConnection;
|
||||
public virtual void SetParSize(SqlParameter[] pars)
|
||||
public virtual void SetParSize(SugarParameter[] pars)
|
||||
{
|
||||
if (pars != null)
|
||||
{
|
||||
@@ -24,7 +25,7 @@ namespace SqlSugar
|
||||
}
|
||||
}
|
||||
}
|
||||
public virtual void SetParSize(SqlParameter par)
|
||||
public virtual void SetParSize(SugarParameter par)
|
||||
{
|
||||
int size = par.Size;
|
||||
if (size < 4000)
|
||||
@@ -33,19 +34,14 @@ namespace SqlSugar
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void SetSqlDbType(PropertyInfo prop, SqlParameter par)
|
||||
public virtual void SetSqlDbType(PropertyInfo prop, SugarParameter par)
|
||||
{
|
||||
var isNullable = false;
|
||||
var isByteArray = PubMethod.GetUnderType(prop, ref isNullable) == typeof(byte[]);
|
||||
if (isByteArray)
|
||||
{
|
||||
par.SqlDbType = SqlDbType.VarBinary;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected virtual SqlParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo,string sqlParameterKeyWord)
|
||||
protected virtual SugarParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo,string sqlParameterKeyWord)
|
||||
{
|
||||
List<SqlParameter> listParams = new List<SqlParameter>();
|
||||
List<SugarParameter> listParams = new List<SugarParameter>();
|
||||
if (obj != null)
|
||||
{
|
||||
var type = obj.GetType();
|
||||
@@ -55,7 +51,7 @@ namespace SqlSugar
|
||||
if (type == PubConst.DicArraySO)
|
||||
{
|
||||
var newObj = (Dictionary<string, object>)obj;
|
||||
var pars = newObj.Select(it => new SqlParameter(sqlParameterKeyWord + it.Key, it.Value));
|
||||
var pars = newObj.Select(it => new SugarParameter(sqlParameterKeyWord + it.Key, it.Value));
|
||||
foreach (var par in pars)
|
||||
{
|
||||
SetParSize(par);
|
||||
@@ -66,7 +62,7 @@ namespace SqlSugar
|
||||
{
|
||||
|
||||
var newObj = (Dictionary<string, string>)obj;
|
||||
var pars = newObj.Select(it => new SqlParameter(sqlParameterKeyWord + it.Key, it.Value));
|
||||
var pars = newObj.Select(it => new SugarParameter(sqlParameterKeyWord + it.Key, it.Value));
|
||||
foreach (var par in pars)
|
||||
{
|
||||
SetParSize(par);
|
||||
@@ -96,14 +92,14 @@ namespace SqlSugar
|
||||
if (value == null || value.Equals(DateTime.MinValue)) value = DBNull.Value;
|
||||
if (r.Name.ToLower().Contains("hierarchyid"))
|
||||
{
|
||||
var par = new SqlParameter(sqlParameterKeyWord + r.Name, SqlDbType.Udt);
|
||||
var par = new SugarParameter(sqlParameterKeyWord + r.Name, SqlDbType.Udt);
|
||||
par.UdtTypeName = "HIERARCHYID";
|
||||
par.Value = value;
|
||||
listParams.Add(par);
|
||||
}
|
||||
else
|
||||
{
|
||||
var par = new SqlParameter(sqlParameterKeyWord + r.Name, value);
|
||||
var par = new SugarParameter(sqlParameterKeyWord + r.Name, value);
|
||||
SetParSize(par);
|
||||
if (value == DBNull.Value)
|
||||
{//防止文件类型报错
|
||||
|
||||
@@ -125,7 +125,7 @@ namespace SqlSugar
|
||||
{
|
||||
return GetString(sql, this.GetParameters(pars));
|
||||
}
|
||||
public virtual string GetString(string sql, params SqlParameter[] pars)
|
||||
public virtual string GetString(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
return Convert.ToString(GetScalar(sql, pars));
|
||||
}
|
||||
@@ -133,24 +133,24 @@ namespace SqlSugar
|
||||
{
|
||||
return GetInt(sql, this.GetParameters(pars));
|
||||
}
|
||||
public virtual int GetInt(string sql, params SqlParameter[] pars)
|
||||
public virtual int GetInt(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
return Convert.ToInt32(GetScalar(sql, pars));
|
||||
}
|
||||
public virtual Double GetDouble(string sql, params SqlParameter[] pars)
|
||||
public virtual Double GetDouble(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
return Convert.ToDouble(GetScalar(sql, pars));
|
||||
}
|
||||
public virtual decimal GetDecimal(string sql, params SqlParameter[] pars)
|
||||
public virtual decimal GetDecimal(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
return Convert.ToDecimal(GetScalar(sql, pars));
|
||||
}
|
||||
public virtual DateTime GetDateTime(string sql, params SqlParameter[] pars)
|
||||
public virtual DateTime GetDateTime(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
return Convert.ToDateTime(GetScalar(sql, pars));
|
||||
}
|
||||
|
||||
public virtual SqlParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo = null)
|
||||
public virtual SugarParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo = null)
|
||||
{
|
||||
if (obj == null) return null;
|
||||
return base.GetParameters(obj, propertyInfo,this.Context.SqlBuilder.SqlParameterKeyWord);
|
||||
@@ -180,16 +180,16 @@ namespace SqlSugar
|
||||
this.Transaction = null;
|
||||
}
|
||||
}
|
||||
public abstract IDbDataParameter[] ToIDbDataParameter(params SqlParameter[] pars);
|
||||
public abstract SugarParameter[] ToIDbDataParameter(params SugarParameter[] pars);
|
||||
public abstract void SetCommandToAdapter(IDataAdapter adapter, IDbCommand command);
|
||||
public abstract IDataAdapter GetAdapter();
|
||||
public abstract IDbCommand GetCommand(string sql, SqlParameter[] pars);
|
||||
public abstract IDbCommand GetCommand(string sql, SugarParameter[] pars);
|
||||
public abstract IDbConnection Connection { get; set; }
|
||||
public abstract void BeginTran(string transactionName);//Only SqlServer
|
||||
public abstract void BeginTran(IsolationLevel iso, string transactionName);//Only SqlServer
|
||||
|
||||
#region Core
|
||||
public virtual int ExecuteCommand(string sql, params SqlParameter[] pars)
|
||||
public virtual int ExecuteCommand(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
base.SetParSize(pars);
|
||||
ExecLogEvent(sql, pars, true);
|
||||
@@ -200,7 +200,7 @@ namespace SqlSugar
|
||||
ExecLogEvent(sql, pars, false);
|
||||
return count;
|
||||
}
|
||||
public virtual IDataReader GetDataReader(string sql, params SqlParameter[] pars)
|
||||
public virtual IDataReader GetDataReader(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
base.SetParSize(pars);
|
||||
ExecLogEvent(sql, pars, true);
|
||||
@@ -211,7 +211,7 @@ namespace SqlSugar
|
||||
ExecLogEvent(sql, pars, false);
|
||||
return sqlDataReader;
|
||||
}
|
||||
public virtual DataSet GetDataSetAll(string sql, params SqlParameter[] pars)
|
||||
public virtual DataSet GetDataSetAll(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
base.SetParSize(pars);
|
||||
ExecLogEvent(sql, pars, true);
|
||||
@@ -225,7 +225,7 @@ namespace SqlSugar
|
||||
ExecLogEvent(sql, pars, false);
|
||||
return ds;
|
||||
}
|
||||
public virtual object GetScalar(string sql, params SqlParameter[] pars)
|
||||
public virtual object GetScalar(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
base.SetParSize(pars);
|
||||
ExecLogEvent(sql, pars, true);
|
||||
@@ -239,7 +239,7 @@ namespace SqlSugar
|
||||
}
|
||||
#endregion
|
||||
|
||||
public virtual DataTable GetDataTable(string sql, params SqlParameter[] pars)
|
||||
public virtual DataTable GetDataTable(string sql, params SugarParameter[] pars)
|
||||
{
|
||||
var ds = GetDataSetAll(sql, pars);
|
||||
if (ds.Tables.Count != 0 && ds.Tables.Count > 0) return ds.Tables[0];
|
||||
@@ -265,7 +265,7 @@ namespace SqlSugar
|
||||
{
|
||||
return ExecuteCommand(sql, GetParameters(pars));
|
||||
}
|
||||
public virtual void ExecLogEvent(string sql, SqlParameter[] pars, bool isStarting = true)
|
||||
public virtual void ExecLogEvent(string sql, SugarParameter[] pars, bool isStarting = true)
|
||||
{
|
||||
if (this.IsEnableLogEvent)
|
||||
{
|
||||
|
||||
@@ -9,19 +9,19 @@ namespace SqlSugar
|
||||
{
|
||||
public class QueryableAccessory
|
||||
{
|
||||
protected List<SqlParameter> _Pars;
|
||||
protected List<SugarParameter> _Pars;
|
||||
protected void AddPars(object whereObj, SqlSugarClient context)
|
||||
{
|
||||
var sqlParsArray = context.Database.GetParameters(whereObj);
|
||||
if (_Pars == null)
|
||||
_Pars = new List<SqlParameter>();
|
||||
_Pars = new List<SugarParameter>();
|
||||
if (sqlParsArray != null)
|
||||
_Pars.AddRange(sqlParsArray);
|
||||
}
|
||||
protected void AddPars(List<SqlParameter> pars, SqlSugarClient context)
|
||||
protected void AddPars(List<SugarParameter> pars, SqlSugarClient context)
|
||||
{
|
||||
if (_Pars == null)
|
||||
_Pars = new List<SqlParameter>();
|
||||
_Pars = new List<SugarParameter>();
|
||||
if (pars != null)
|
||||
_Pars.AddRange(pars);
|
||||
}
|
||||
|
||||
@@ -15,9 +15,9 @@ namespace SqlSugar
|
||||
public IDb Db { get { return Context.Database; } }
|
||||
public IDbBind Bind { get { return this.Db.DbBind; } }
|
||||
public ISqlBuilder SqlBuilder { get { return this.Context.SqlBuilder; } }
|
||||
public List<SqlParameter> Pars
|
||||
public List<SugarParameter> Pars
|
||||
{
|
||||
get { return PubMethod.IsNullReturnNew<List<SqlParameter>>(base._Pars); }
|
||||
get { return PubMethod.IsNullReturnNew<List<SugarParameter>>(base._Pars); }
|
||||
set { base._Pars = value; }
|
||||
}
|
||||
public void Clear()
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace SqlSugar
|
||||
{
|
||||
return new SqlDataAdapter();
|
||||
}
|
||||
public override IDbCommand GetCommand(string sql, SqlParameter[] pars)
|
||||
public override IDbCommand GetCommand(string sql, SugarParameter[] pars)
|
||||
{
|
||||
SqlCommand sqlCommand = new SqlCommand(sql, (SqlConnection)this.Connection);
|
||||
sqlCommand.CommandType = this.CommandType;
|
||||
@@ -73,7 +73,7 @@ namespace SqlSugar
|
||||
/// </summary>
|
||||
/// <param name="pars"></param>
|
||||
/// <returns></returns>
|
||||
public override IDbDataParameter[] ToIDbDataParameter(params SqlParameter[] pars)
|
||||
public override SugarParameter[] ToIDbDataParameter(params SugarParameter[] pars)
|
||||
{
|
||||
return pars;
|
||||
}
|
||||
|
||||
65
SqlSugar/Entities/SugarParameter.cs
Normal file
65
SqlSugar/Entities/SugarParameter.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
public class SugarParameter : DbParameter
|
||||
{
|
||||
|
||||
public SugarParameter(string name, object value)
|
||||
{
|
||||
this.Value = value;
|
||||
this.ParameterName = name;
|
||||
}
|
||||
|
||||
public override System.Data.DbType DbType
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override ParameterDirection Direction
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override bool IsNullable
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override string ParameterName
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override int Size
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override string SourceColumn
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override bool SourceColumnNullMapping
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
public string UdtTypeName { get; internal set; }
|
||||
public override object Value
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
|
||||
public override void ResetDbType()
|
||||
{
|
||||
this.DbType = System.Data.DbType.String;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,10 +13,10 @@ namespace SqlSugar
|
||||
{
|
||||
IDbConnection Connection { get; set; }
|
||||
IDbTransaction Transaction { get; set; }
|
||||
IDbDataParameter[] ToIDbDataParameter(params SqlParameter [] pars);
|
||||
SqlParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo = null);
|
||||
SugarParameter[] ToIDbDataParameter(params SugarParameter[] pars);
|
||||
SugarParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo = null);
|
||||
SqlSugarClient Context { get; set; }
|
||||
void ExecLogEvent(string sql, SqlParameter[] pars, bool isStarting = true);
|
||||
void ExecLogEvent(string sql, SugarParameter[] pars, bool isStarting = true);
|
||||
|
||||
IConnectionConfig MasterConnectionConfig { get; set; }
|
||||
List<IConnectionConfig> SlaveConnectionConfigs { get; set; }
|
||||
@@ -35,24 +35,24 @@ namespace SqlSugar
|
||||
|
||||
void SetCommandToAdapter(IDataAdapter adapter,IDbCommand command);
|
||||
IDataAdapter GetAdapter();
|
||||
IDbCommand GetCommand(string sql, SqlParameter[] pars);
|
||||
IDbCommand GetCommand(string sql, SugarParameter[] pars);
|
||||
DataTable GetDataTable(string sql, object pars);
|
||||
DataTable GetDataTable(string sql, params SqlParameter[] pars);
|
||||
DataTable GetDataTable(string sql, params SugarParameter[] pars);
|
||||
DataSet GetDataSetAll(string sql, object pars);
|
||||
DataSet GetDataSetAll(string sql, params SqlParameter[] pars);
|
||||
DataSet GetDataSetAll(string sql, params SugarParameter[] pars);
|
||||
IDataReader GetDataReader(string sql,object pars);
|
||||
IDataReader GetDataReader(string sql, params SqlParameter[] pars);
|
||||
IDataReader GetDataReader(string sql, params SugarParameter[] pars);
|
||||
object GetScalar(string sql, object pars);
|
||||
object GetScalar(string sql, params SqlParameter[] pars);
|
||||
object GetScalar(string sql, params SugarParameter[] pars);
|
||||
int ExecuteCommand(string sql, object pars);
|
||||
int ExecuteCommand(string sql, params SqlParameter[] pars);
|
||||
int ExecuteCommand(string sql, params SugarParameter[] pars);
|
||||
string GetString(string sql, object pars);
|
||||
string GetString(string sql, params SqlParameter[] pars);
|
||||
string GetString(string sql, params SugarParameter[] pars);
|
||||
int GetInt(string sql, object pars);
|
||||
int GetInt(string sql, params SqlParameter[] pars);
|
||||
Double GetDouble(string sql, params SqlParameter[] pars);
|
||||
decimal GetDecimal(string sql, params SqlParameter[] pars);
|
||||
DateTime GetDateTime(string sql, params SqlParameter[] pars);
|
||||
int GetInt(string sql, params SugarParameter[] pars);
|
||||
Double GetDouble(string sql, params SugarParameter[] pars);
|
||||
decimal GetDecimal(string sql, params SugarParameter[] pars);
|
||||
DateTime GetDateTime(string sql, params SugarParameter[] pars);
|
||||
|
||||
void Dispose();
|
||||
void Close();
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace SqlSugar
|
||||
public partial interface ISugarQueryable<T> where T : class, new()
|
||||
{
|
||||
SqlSugarClient Context { get; set; }
|
||||
List<SqlParameter> Pars { get; set; }
|
||||
List<SugarParameter> Pars { get; set; }
|
||||
|
||||
|
||||
ISugarQueryable<T> Where(Expression<Func<T, bool>> expression);
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
<Compile Include="Entities\ConnectionConfig.cs" />
|
||||
<Compile Include="Entities\DbColumnInfo.cs" />
|
||||
<Compile Include="Entities\DbTableInfo.cs" />
|
||||
<Compile Include="Entities\SugarParameter.cs" />
|
||||
<Compile Include="ExpressionsToSql\ExpressionParameter.cs" />
|
||||
<Compile Include="Entities\JoinQueryInfo.cs" />
|
||||
<Compile Include="Entities\Mapping\MappingColumn.cs" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user