mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +08:00
Update MySql
This commit is contained in:
parent
2e138209d8
commit
c1a4e7efdf
@ -35,7 +35,7 @@ namespace OrmTest
|
|||||||
// new SqlSugarPerformance(100).Select();
|
// new SqlSugarPerformance(100).Select();
|
||||||
|
|
||||||
/***Demo***/
|
/***Demo***/
|
||||||
// OrmTest.Demo.Query.Init();
|
OrmTest.Demo.Query.Init();
|
||||||
//OrmTest.Demo.Insert.Init();
|
//OrmTest.Demo.Insert.Init();
|
||||||
//OrmTest.Demo.Delete.Init();
|
//OrmTest.Demo.Delete.Init();
|
||||||
//OrmTest.Demo.Update.Init();
|
//OrmTest.Demo.Update.Init();
|
||||||
|
@ -38,7 +38,7 @@ namespace SqlSugar
|
|||||||
QueryBuilder.Clear();
|
QueryBuilder.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> AS<T2>(string tableName)
|
public virtual ISugarQueryable<T> AS<T2>(string tableName)
|
||||||
{
|
{
|
||||||
var entityName = typeof(T2).Name;
|
var entityName = typeof(T2).Name;
|
||||||
IsAs = true;
|
IsAs = true;
|
||||||
@ -56,13 +56,13 @@ namespace SqlSugar
|
|||||||
this.Context.MappingTables.Add(entityName, tableName);
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> With(string withString)
|
public virtual ISugarQueryable<T> With(string withString)
|
||||||
{
|
{
|
||||||
QueryBuilder.TableWithString = withString;
|
QueryBuilder.TableWithString = withString;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter = false)
|
public virtual ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter = false)
|
||||||
{
|
{
|
||||||
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
|
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
|
||||||
if (this.Context.QueryFilter.GeFilterList.IsValuable() && FilterName.IsValuable())
|
if (this.Context.QueryFilter.GeFilterList.IsValuable() && FilterName.IsValuable())
|
||||||
@ -77,24 +77,24 @@ namespace SqlSugar
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> AddParameters(object parameters)
|
public virtual ISugarQueryable<T> AddParameters(object parameters)
|
||||||
{
|
{
|
||||||
if (parameters != null)
|
if (parameters != null)
|
||||||
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
|
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> AddParameters(SugarParameter[] parameters)
|
public virtual ISugarQueryable<T> AddParameters(SugarParameter[] parameters)
|
||||||
{
|
{
|
||||||
QueryBuilder.Parameters.AddRange(parameters);
|
QueryBuilder.Parameters.AddRange(parameters);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> AddParameters(SugarParameter parameter)
|
public virtual ISugarQueryable<T> AddParameters(SugarParameter parameter)
|
||||||
{
|
{
|
||||||
QueryBuilder.Parameters.Add(parameter);
|
QueryBuilder.Parameters.Add(parameter);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
|
public virtual ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
|
||||||
{
|
{
|
||||||
|
|
||||||
QueryBuilder.JoinIndex = +1;
|
QueryBuilder.JoinIndex = +1;
|
||||||
@ -115,12 +115,12 @@ namespace SqlSugar
|
|||||||
this._Where(expression);
|
this._Where(expression);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Where(string whereString, object whereObj = null)
|
public virtual ISugarQueryable<T> Where(string whereString, object whereObj = null)
|
||||||
{
|
{
|
||||||
this.Where<T>(whereString, whereObj);
|
this.Where<T>(whereString, whereObj);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Where<T2>(string whereString, object whereObj = null)
|
public virtual ISugarQueryable<T> Where<T2>(string whereString, object whereObj = null)
|
||||||
{
|
{
|
||||||
var whereValue = QueryBuilder.WhereInfos;
|
var whereValue = QueryBuilder.WhereInfos;
|
||||||
whereValue.Add(SqlBuilder.AppendWhereOrAnd(whereValue.Count == 0, whereString));
|
whereValue.Add(SqlBuilder.AppendWhereOrAnd(whereValue.Count == 0, whereString));
|
||||||
@ -129,12 +129,12 @@ namespace SqlSugar
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> Having(Expression<Func<T, bool>> expression)
|
public virtual ISugarQueryable<T> Having(Expression<Func<T, bool>> expression)
|
||||||
{
|
{
|
||||||
this._Having(expression);
|
this._Having(expression);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Having(string whereString, object parameters = null)
|
public virtual ISugarQueryable<T> Having(string whereString, object parameters = null)
|
||||||
{
|
{
|
||||||
|
|
||||||
QueryBuilder.HavingInfos = SqlBuilder.AppendHaving(whereString);
|
QueryBuilder.HavingInfos = SqlBuilder.AppendHaving(whereString);
|
||||||
@ -149,20 +149,20 @@ namespace SqlSugar
|
|||||||
_Where(expression);
|
_Where(expression);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> WhereIF(bool isWhere, string whereString, object whereObj = null)
|
public virtual ISugarQueryable<T> WhereIF(bool isWhere, string whereString, object whereObj = null)
|
||||||
{
|
{
|
||||||
if (!isWhere) return this;
|
if (!isWhere) return this;
|
||||||
this.Where<T>(whereString, whereObj);
|
this.Where<T>(whereString, whereObj);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public T InSingle(object pkValue)
|
public virtual T InSingle(object pkValue)
|
||||||
{
|
{
|
||||||
var list = In(pkValue).ToList();
|
var list = In(pkValue).ToList();
|
||||||
if (list == null) return default(T);
|
if (list == null) return default(T);
|
||||||
else return list.SingleOrDefault();
|
else return list.SingleOrDefault();
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> In<TParamter>(params TParamter[] pkValues)
|
public virtual ISugarQueryable<T> In<TParamter>(params TParamter[] pkValues)
|
||||||
{
|
{
|
||||||
if (pkValues == null || pkValues.Length == 0)
|
if (pkValues == null || pkValues.Length == 0)
|
||||||
{
|
{
|
||||||
@ -176,7 +176,7 @@ namespace SqlSugar
|
|||||||
filed = shortName + filed;
|
filed = shortName + filed;
|
||||||
return In(filed, pkValues);
|
return In(filed, pkValues);
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> In<FieldType>(string filed, params FieldType[] inValues)
|
public virtual ISugarQueryable<T> In<FieldType>(string filed, params FieldType[] inValues)
|
||||||
{
|
{
|
||||||
if (inValues.Length == 1)
|
if (inValues.Length == 1)
|
||||||
{
|
{
|
||||||
@ -216,14 +216,14 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, params FieldType[] inValues)
|
public virtual ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, params FieldType[] inValues)
|
||||||
{
|
{
|
||||||
var isSingle = QueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
var fieldName = lamResult.GetResultString();
|
var fieldName = lamResult.GetResultString();
|
||||||
return In(fieldName, inValues);
|
return In(fieldName, inValues);
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> In<TParamter>(List<TParamter> pkValues) {
|
public virtual ISugarQueryable<T> In<TParamter>(List<TParamter> pkValues) {
|
||||||
if (pkValues == null || pkValues.Count == 0)
|
if (pkValues == null || pkValues.Count == 0)
|
||||||
{
|
{
|
||||||
Where(SqlBuilder.SqlFalse);
|
Where(SqlBuilder.SqlFalse);
|
||||||
@ -231,7 +231,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return In(pkValues.ToArray());
|
return In(pkValues.ToArray());
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> In<FieldType>(string InFieldName, List<FieldType> inValues) {
|
public virtual ISugarQueryable<T> In<FieldType>(string InFieldName, List<FieldType> inValues) {
|
||||||
if (inValues == null || inValues.Count == 0)
|
if (inValues == null || inValues.Count == 0)
|
||||||
{
|
{
|
||||||
Where(SqlBuilder.SqlFalse);
|
Where(SqlBuilder.SqlFalse);
|
||||||
@ -239,7 +239,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return In(InFieldName, inValues.ToArray());
|
return In(InFieldName, inValues.ToArray());
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues) {
|
public virtual ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues) {
|
||||||
if (inValues == null || inValues.Count == 0)
|
if (inValues == null || inValues.Count == 0)
|
||||||
{
|
{
|
||||||
Where(SqlBuilder.SqlFalse);
|
Where(SqlBuilder.SqlFalse);
|
||||||
@ -247,7 +247,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return In(expression, inValues.ToArray());
|
return In(expression, inValues.ToArray());
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> OrderBy(string orderFileds)
|
public virtual ISugarQueryable<T> OrderBy(string orderFileds)
|
||||||
{
|
{
|
||||||
var orderByValue = QueryBuilder.OrderByValue;
|
var orderByValue = QueryBuilder.OrderByValue;
|
||||||
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
||||||
@ -257,18 +257,18 @@ namespace SqlSugar
|
|||||||
QueryBuilder.OrderByValue += string.IsNullOrEmpty(orderByValue) ? orderFileds : ("," + orderFileds);
|
QueryBuilder.OrderByValue += string.IsNullOrEmpty(orderByValue) ? orderFileds : ("," + orderFileds);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> OrderBy(Expression<Func<T, object>> expression, OrderByType type = OrderByType.Asc)
|
public virtual ISugarQueryable<T> OrderBy(Expression<Func<T, object>> expression, OrderByType type = OrderByType.Asc)
|
||||||
{
|
{
|
||||||
this._OrderBy(expression, type);
|
this._OrderBy(expression, type);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> GroupBy(Expression<Func<T, object>> expression)
|
public virtual ISugarQueryable<T> GroupBy(Expression<Func<T, object>> expression)
|
||||||
{
|
{
|
||||||
_GroupBy(expression);
|
_GroupBy(expression);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> GroupBy(string groupFileds)
|
public virtual ISugarQueryable<T> GroupBy(string groupFileds)
|
||||||
{
|
{
|
||||||
var croupByValue = QueryBuilder.GroupByValue;
|
var croupByValue = QueryBuilder.GroupByValue;
|
||||||
if (QueryBuilder.GroupByValue.IsNullOrEmpty())
|
if (QueryBuilder.GroupByValue.IsNullOrEmpty())
|
||||||
@ -279,14 +279,14 @@ namespace SqlSugar
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> PartitionBy(Expression<Func<T, object>> expression)
|
public virtual ISugarQueryable<T> PartitionBy(Expression<Func<T, object>> expression)
|
||||||
{
|
{
|
||||||
if (QueryBuilder.Take == null)
|
if (QueryBuilder.Take == null)
|
||||||
QueryBuilder.Take = 0;
|
QueryBuilder.Take = 0;
|
||||||
_PartitionBy(expression);
|
_PartitionBy(expression);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> PartitionBy(string groupFileds)
|
public virtual ISugarQueryable<T> PartitionBy(string groupFileds)
|
||||||
{
|
{
|
||||||
var partitionByValue = QueryBuilder.PartitionByValue;
|
var partitionByValue = QueryBuilder.PartitionByValue;
|
||||||
if (QueryBuilder.PartitionByValue.IsNullOrEmpty())
|
if (QueryBuilder.PartitionByValue.IsNullOrEmpty())
|
||||||
@ -297,18 +297,18 @@ namespace SqlSugar
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> Skip(int num)
|
public virtual ISugarQueryable<T> Skip(int num)
|
||||||
{
|
{
|
||||||
QueryBuilder.Skip = num;
|
QueryBuilder.Skip = num;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Take(int num)
|
public virtual ISugarQueryable<T> Take(int num)
|
||||||
{
|
{
|
||||||
QueryBuilder.Take = num;
|
QueryBuilder.Take = num;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public T Single()
|
public virtual T Single()
|
||||||
{
|
{
|
||||||
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
@ -326,13 +326,13 @@ namespace SqlSugar
|
|||||||
return default(T);
|
return default(T);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public T Single(Expression<Func<T, bool>> expression)
|
public virtual T Single(Expression<Func<T, bool>> expression)
|
||||||
{
|
{
|
||||||
_Where(expression);
|
_Where(expression);
|
||||||
return Single();
|
return Single();
|
||||||
}
|
}
|
||||||
|
|
||||||
public T First()
|
public virtual T First()
|
||||||
{
|
{
|
||||||
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
@ -350,27 +350,27 @@ namespace SqlSugar
|
|||||||
return default(T);
|
return default(T);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public T First(Expression<Func<T, bool>> expression)
|
public virtual T First(Expression<Func<T, bool>> expression)
|
||||||
{
|
{
|
||||||
_Where(expression);
|
_Where(expression);
|
||||||
return First();
|
return First();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Any(Expression<Func<T, bool>> expression)
|
public virtual bool Any(Expression<Func<T, bool>> expression)
|
||||||
{
|
{
|
||||||
_Where(expression);
|
_Where(expression);
|
||||||
return Any();
|
return Any();
|
||||||
}
|
}
|
||||||
public bool Any()
|
public virtual bool Any()
|
||||||
{
|
{
|
||||||
return this.Count() > 0;
|
return this.Count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression)
|
public virtual ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
return _Select<TResult>(expression);
|
return _Select<TResult>(expression);
|
||||||
}
|
}
|
||||||
public ISugarQueryable<TResult> Select<TResult>(string selectValue) where TResult : class, new()
|
public virtual ISugarQueryable<TResult> Select<TResult>(string selectValue) where TResult : class, new()
|
||||||
{
|
{
|
||||||
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
||||||
reval.Context = this.Context;
|
reval.Context = this.Context;
|
||||||
@ -378,13 +378,13 @@ namespace SqlSugar
|
|||||||
QueryBuilder.SelectValue = selectValue;
|
QueryBuilder.SelectValue = selectValue;
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Select(string selectValue)
|
public virtual ISugarQueryable<T> Select(string selectValue)
|
||||||
{
|
{
|
||||||
QueryBuilder.SelectValue = selectValue;
|
QueryBuilder.SelectValue = selectValue;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Count()
|
public virtual int Count()
|
||||||
{
|
{
|
||||||
QueryBuilder.IsCount = true;
|
QueryBuilder.IsCount = true;
|
||||||
var sql = QueryBuilder.ToSqlString();
|
var sql = QueryBuilder.ToSqlString();
|
||||||
@ -394,76 +394,76 @@ namespace SqlSugar
|
|||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TResult Max<TResult>(string maxField)
|
public virtual TResult Max<TResult>(string maxField)
|
||||||
{
|
{
|
||||||
this.Select(string.Format(QueryBuilder.MaxTemplate, maxField));
|
this.Select(string.Format(QueryBuilder.MaxTemplate, maxField));
|
||||||
var reval = this._ToList<TResult>().SingleOrDefault();
|
var reval = this._ToList<TResult>().SingleOrDefault();
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
public TResult Max<TResult>(Expression<Func<T, TResult>> expression)
|
public virtual TResult Max<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = QueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
return Max<TResult>(lamResult.GetResultString());
|
return Max<TResult>(lamResult.GetResultString());
|
||||||
}
|
}
|
||||||
public TResult Min<TResult>(string minField)
|
public virtual TResult Min<TResult>(string minField)
|
||||||
{
|
{
|
||||||
this.Select(string.Format(QueryBuilder.MinTemplate, minField));
|
this.Select(string.Format(QueryBuilder.MinTemplate, minField));
|
||||||
var reval = this._ToList<TResult>().SingleOrDefault();
|
var reval = this._ToList<TResult>().SingleOrDefault();
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
public TResult Min<TResult>(Expression<Func<T, TResult>> expression)
|
public virtual TResult Min<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = QueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
return Min<TResult>(lamResult.GetResultString());
|
return Min<TResult>(lamResult.GetResultString());
|
||||||
}
|
}
|
||||||
public TResult Sum<TResult>(string sumField)
|
public virtual TResult Sum<TResult>(string sumField)
|
||||||
{
|
{
|
||||||
this.Select(string.Format(QueryBuilder.SumTemplate, sumField));
|
this.Select(string.Format(QueryBuilder.SumTemplate, sumField));
|
||||||
var reval = this._ToList<TResult>().SingleOrDefault();
|
var reval = this._ToList<TResult>().SingleOrDefault();
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
public TResult Sum<TResult>(Expression<Func<T, TResult>> expression)
|
public virtual TResult Sum<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = QueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
return Sum<TResult>(lamResult.GetResultString());
|
return Sum<TResult>(lamResult.GetResultString());
|
||||||
}
|
}
|
||||||
public TResult Avg<TResult>(string avgField)
|
public virtual TResult Avg<TResult>(string avgField)
|
||||||
{
|
{
|
||||||
this.Select(string.Format(QueryBuilder.AvgTemplate, avgField));
|
this.Select(string.Format(QueryBuilder.AvgTemplate, avgField));
|
||||||
var reval = this._ToList<TResult>().SingleOrDefault();
|
var reval = this._ToList<TResult>().SingleOrDefault();
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
public TResult Avg<TResult>(Expression<Func<T, TResult>> expression)
|
public virtual TResult Avg<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = QueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
return Avg<TResult>(lamResult.GetResultString());
|
return Avg<TResult>(lamResult.GetResultString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ToJson()
|
public virtual string ToJson()
|
||||||
{
|
{
|
||||||
return this.Context.RewritableMethods.SerializeObject(this.ToList());
|
return this.Context.RewritableMethods.SerializeObject(this.ToList());
|
||||||
}
|
}
|
||||||
public string ToJsonPage(int pageIndex, int pageSize)
|
public virtual string ToJsonPage(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
return this.Context.RewritableMethods.SerializeObject(this.ToPageList(pageIndex, pageSize));
|
return this.Context.RewritableMethods.SerializeObject(this.ToPageList(pageIndex, pageSize));
|
||||||
}
|
}
|
||||||
public string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber)
|
public virtual string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber)
|
||||||
{
|
{
|
||||||
return this.Context.RewritableMethods.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber));
|
return this.Context.RewritableMethods.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber));
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataTable ToDataTable()
|
public virtual DataTable ToDataTable()
|
||||||
{
|
{
|
||||||
var sqlObj = this.ToSql();
|
var sqlObj = this.ToSql();
|
||||||
RestoreMapping();
|
RestoreMapping();
|
||||||
var result = this.Db.GetDataTable(sqlObj.Key, sqlObj.Value.ToArray());
|
var result = this.Db.GetDataTable(sqlObj.Key, sqlObj.Value.ToArray());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
public DataTable ToDataTablePage(int pageIndex, int pageSize)
|
public virtual DataTable ToDataTablePage(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
if (pageIndex == 0)
|
if (pageIndex == 0)
|
||||||
pageIndex = 1;
|
pageIndex = 1;
|
||||||
@ -471,17 +471,17 @@ namespace SqlSugar
|
|||||||
QueryBuilder.Take = pageSize;
|
QueryBuilder.Take = pageSize;
|
||||||
return ToDataTable();
|
return ToDataTable();
|
||||||
}
|
}
|
||||||
public DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber)
|
public virtual DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber)
|
||||||
{
|
{
|
||||||
totalNumber = this.Count();
|
totalNumber = this.Count();
|
||||||
return ToDataTablePage(pageIndex, pageSize);
|
return ToDataTablePage(pageIndex, pageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<T> ToList()
|
public virtual List<T> ToList()
|
||||||
{
|
{
|
||||||
return _ToList<T>();
|
return _ToList<T>();
|
||||||
}
|
}
|
||||||
public List<T> ToPageList(int pageIndex, int pageSize)
|
public virtual List<T> ToPageList(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
if (pageIndex == 0)
|
if (pageIndex == 0)
|
||||||
pageIndex = 1;
|
pageIndex = 1;
|
||||||
@ -489,13 +489,13 @@ namespace SqlSugar
|
|||||||
QueryBuilder.Take = pageSize;
|
QueryBuilder.Take = pageSize;
|
||||||
return ToList();
|
return ToList();
|
||||||
}
|
}
|
||||||
public List<T> ToPageList(int pageIndex, int pageSize, ref int totalNumber)
|
public virtual List<T> ToPageList(int pageIndex, int pageSize, ref int totalNumber)
|
||||||
{
|
{
|
||||||
totalNumber = this.Count();
|
totalNumber = this.Count();
|
||||||
return ToPageList(pageIndex, pageSize);
|
return ToPageList(pageIndex, pageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyValuePair<string, List<SugarParameter>> ToSql()
|
public virtual KeyValuePair<string, List<SugarParameter>> ToSql()
|
||||||
{
|
{
|
||||||
string sql = QueryBuilder.ToSqlString();
|
string sql = QueryBuilder.ToSqlString();
|
||||||
RestoreMapping();
|
RestoreMapping();
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
{
|
{
|
||||||
public class MySqlQueryable<T>:QueryableProvider<T>
|
public class MySqlQueryable<T>:QueryableProvider<T>
|
||||||
{
|
{
|
||||||
|
public override ISugarQueryable<T> With(string withString)
|
||||||
|
{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public class MySqlQueryable<T,T2> : QueryableProvider<T,T2>
|
public class MySqlQueryable<T,T2> : QueryableProvider<T,T2>
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
namespace SqlSugar
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
public class MySqlExpressionContext : ExpressionContext, ILambdaExpressions
|
public class MySqlExpressionContext : ExpressionContext, ILambdaExpressions
|
||||||
{
|
{
|
||||||
@ -7,7 +9,48 @@
|
|||||||
{
|
{
|
||||||
base.DbMehtods = new MySqlMethod();
|
base.DbMehtods = new MySqlMethod();
|
||||||
}
|
}
|
||||||
|
public override string GetTranslationTableName(string entityName, bool isMapping = true)
|
||||||
|
{
|
||||||
|
Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name"));
|
||||||
|
if (IsTranslationText(entityName)) return entityName;
|
||||||
|
if (isMapping && this.MappingTables.IsValuable())
|
||||||
|
{
|
||||||
|
if (entityName.Contains("."))
|
||||||
|
{
|
||||||
|
var columnInfo = entityName.Split('.');
|
||||||
|
var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(columnInfo.Last(), StringComparison.CurrentCultureIgnoreCase));
|
||||||
|
if (mappingInfo != null)
|
||||||
|
{
|
||||||
|
columnInfo[columnInfo.Length - 1] = mappingInfo.EntityName;
|
||||||
|
}
|
||||||
|
return string.Join(".", columnInfo.Select(it => GetTranslationText(it)));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase));
|
||||||
|
return "`" + (mappingInfo == null ? entityName : mappingInfo.EntityName) + "`";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (entityName.Contains("."))
|
||||||
|
{
|
||||||
|
return string.Join(".", entityName.Split('.').Select(it => GetTranslationText(it)));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return GetTranslationText(entityName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override bool IsTranslationText(string name)
|
||||||
|
{
|
||||||
|
return name.Contains("`") && name.Contains("`");
|
||||||
|
}
|
||||||
|
public override string GetTranslationText(string name)
|
||||||
|
{
|
||||||
|
return "`" + name + "`";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public class MySqlMethod : DefaultDbMethod, IDbMethods
|
public class MySqlMethod : DefaultDbMethod, IDbMethods
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user