mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 10:08:19 +08:00
-
This commit is contained in:
@@ -19,11 +19,11 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
//Unit Test
|
//Unit Test
|
||||||
int eachCount = 1;
|
int eachCount = 1;
|
||||||
//new Field(eachCount).Init();
|
new Field(eachCount).Init();
|
||||||
//new Where(eachCount).Init();
|
new Where(eachCount).Init();
|
||||||
//new Method(eachCount).Init();
|
new Method(eachCount).Init();
|
||||||
//new JoinQuery(eachCount).Init();
|
new JoinQuery(eachCount).Init();
|
||||||
//new SingleQuery(eachCount).Init();
|
new SingleQuery(eachCount).Init();
|
||||||
new SelectQuery(eachCount).Init();
|
new SelectQuery(eachCount).Init();
|
||||||
|
|
||||||
|
|
||||||
|
@@ -44,7 +44,7 @@ namespace OrmTest.UnitTest
|
|||||||
.GroupBy(it=>it.Id)
|
.GroupBy(it=>it.Id)
|
||||||
.OrderBy(it=>it.Id)
|
.OrderBy(it=>it.Id)
|
||||||
.Select(it=>it.Id).ToSql();
|
.Select(it=>it.Id).ToSql();
|
||||||
base.Check("SELECT [Id] FROM [Student] WITH(NOLOCK) GROUP BY [Id] ORDER BY [Id] ASC", null, gos.Key,null, "基本查询出错");
|
base.Check("SELECT [Id] FROM [Student] WITH(NOLOCK) GROUP BY [Id] ORDER BY [Id] ASC", null, gos.Key,null, "基本查询出错");
|
||||||
var dr3 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name=it.Name,Student=it}).ToList();
|
var dr3 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name=it.Name,Student=it}).ToList();
|
||||||
var dr0 = db.Queryable<Student>().Select(it => new { id=it.Id,w=new { x=it } }).ToList();
|
var dr0 = db.Queryable<Student>().Select(it => new { id=it.Id,w=new { x=it } }).ToList();
|
||||||
var dr1 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();
|
var dr1 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();
|
||||||
|
@@ -29,7 +29,76 @@ namespace OrmTest.UnitTest
|
|||||||
{
|
{
|
||||||
using (var db = GetInstance())
|
using (var db = GetInstance())
|
||||||
{
|
{
|
||||||
var list = db.Queryable<Student>().Where(st => st.Id > 0).ToList();
|
var s1 = db.Queryable<Student>().ToSql();
|
||||||
|
base.Check("SELECT [Id],[SchoolId],[Name],[CreateTime] FROM [Student]", null, s1.Key, null, "s1 Error");
|
||||||
|
|
||||||
|
var s2 = db.Queryable<Student>().With(SqlWith.NoLock).ToSql();
|
||||||
|
base.Check("SELECT [Id],[SchoolId],[Name],[CreateTime] FROM [Student] WITH(NOLOCK)", null, s2.Key, null, "s2 Error");
|
||||||
|
|
||||||
|
var s3 = db.Queryable<Student>().OrderBy(it=>it.Id).ToSql();
|
||||||
|
base.Check("SELECT [Id],[SchoolId],[Name],[CreateTime] FROM [Student] ORDER BY [Id] ASC", null, s3.Key, null, "s3 Error");
|
||||||
|
|
||||||
|
var s4 = db.Queryable<Student>().OrderBy(it => it.Id).Take(3).ToSql();
|
||||||
|
base.Check(@"WITH PageTable AS(
|
||||||
|
SELECT [Id],[SchoolId],[Name],[CreateTime] FROM [Student]
|
||||||
|
)
|
||||||
|
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [Id] ASC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 1 AND 3", null, s4.Key, null, "s4 Error");
|
||||||
|
|
||||||
|
var s5 = db.Queryable<Student>().OrderBy(it => it.Id).Skip(3).ToSql();
|
||||||
|
base.Check(@"WITH PageTable AS(
|
||||||
|
SELECT [Id],[SchoolId],[Name],[CreateTime] FROM [Student]
|
||||||
|
)
|
||||||
|
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [Id] ASC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 4 AND 9223372036854775807", null, s5.Key,null, "s5 Error");
|
||||||
|
|
||||||
|
int pageIndex = 2;
|
||||||
|
int pageSize = 10;
|
||||||
|
var s6 = db.Queryable<Student>().OrderBy(it => it.Id,OrderByType.Desc).Skip((pageIndex-1)*pageSize).Take(pageSize*pageIndex).ToSql();
|
||||||
|
base.Check(@"WITH PageTable AS(
|
||||||
|
SELECT [Id],[SchoolId],[Name],[CreateTime] FROM [Student]
|
||||||
|
)
|
||||||
|
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [Id] DESC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 11 AND 20", null, s6.Key, null, "s6 Error");
|
||||||
|
|
||||||
|
|
||||||
|
int studentCount=db.Database.GetInt("select count(1) from Student");
|
||||||
|
var countIsSuccess=db.Queryable<Student>().Count()== studentCount;
|
||||||
|
if (!countIsSuccess) {
|
||||||
|
throw new Exception("countIsSuccess Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
var s7 = db.Queryable<Student>().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize * pageIndex).ToPageList(pageIndex,pageSize,ref studentCount);
|
||||||
|
countIsSuccess = studentCount == db.Queryable<Student>().OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize * pageIndex).Count();
|
||||||
|
if (!countIsSuccess)
|
||||||
|
{
|
||||||
|
throw new Exception("s7 Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
int studentMin = db.Database.GetInt("select min(id) from Student");
|
||||||
|
var minIsSuccess = db.Queryable<Student>().Min(it=>it.Id) == studentMin;
|
||||||
|
if (!minIsSuccess)
|
||||||
|
{
|
||||||
|
throw new Exception("minIsSuccess Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
int studentMax = db.Database.GetInt("select max(id) from Student");
|
||||||
|
var maxIsSuccess = db.Queryable<Student>().Max(it => it.Id) == studentMax;
|
||||||
|
if (!maxIsSuccess)
|
||||||
|
{
|
||||||
|
throw new Exception("maxIsSuccess Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
int studentAvg = db.Database.GetInt("select avg(id) from Student");
|
||||||
|
var avgIsSuccess = db.Queryable<Student>().Avg(it => it.Id) == studentAvg;
|
||||||
|
if (!maxIsSuccess)
|
||||||
|
{
|
||||||
|
throw new Exception("avgIsSuccess Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
int studentSum = db.Database.GetInt("select sum(id) from Student");
|
||||||
|
var sumIsSuccess = db.Queryable<Student>().Sum(it => it.Id) == studentSum;
|
||||||
|
if (!sumIsSuccess)
|
||||||
|
{
|
||||||
|
throw new Exception("sumIsSuccess Error");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -67,7 +67,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else if (type.IsValueType || type == PubConst.StringType)
|
else if (type.IsValueType || type == PubConst.StringType)
|
||||||
{
|
{
|
||||||
return GetKeyValueList<T>(type, dataReader);
|
return GetValueTypeList<T>(type, dataReader);
|
||||||
}
|
}
|
||||||
else if (type.IsArray)
|
else if (type.IsArray)
|
||||||
{
|
{
|
||||||
|
@@ -16,31 +16,38 @@ namespace SqlSugar
|
|||||||
public IDb Db { get { return Context.Database; } }
|
public IDb Db { get { return Context.Database; } }
|
||||||
public IDbBind Bind { get { return this.Db.DbBind; } }
|
public IDbBind Bind { get { return this.Db.DbBind; } }
|
||||||
public ISqlBuilder SqlBuilder { get; set; }
|
public ISqlBuilder SqlBuilder { get; set; }
|
||||||
|
public QueryBuilder QueryBuilder
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.SqlBuilder.QueryBuilder;
|
||||||
|
}
|
||||||
|
}
|
||||||
public void Clear()
|
public void Clear()
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.Clear();
|
QueryBuilder.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> AddParameters(object whereObj)
|
public ISugarQueryable<T> AddParameters(object whereObj)
|
||||||
{
|
{
|
||||||
if (whereObj != null)
|
if (whereObj != null)
|
||||||
this.SqlBuilder.LambadaQueryBuilder.QueryPars.AddRange(Context.Database.GetParameters(whereObj));
|
QueryBuilder.QueryPars.AddRange(Context.Database.GetParameters(whereObj));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> AddParameters(SugarParameter[] pars)
|
public ISugarQueryable<T> AddParameters(SugarParameter[] pars)
|
||||||
{
|
{
|
||||||
this.SqlBuilder.LambadaQueryBuilder.QueryPars.AddRange(pars);
|
QueryBuilder.QueryPars.AddRange(pars);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
|
public ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left)
|
||||||
{
|
{
|
||||||
|
|
||||||
SqlBuilder.LambadaQueryBuilder.JoinIndex = +1;
|
QueryBuilder.JoinIndex = +1;
|
||||||
SqlBuilder.LambadaQueryBuilder.JoinQueryInfos
|
QueryBuilder.JoinQueryInfos
|
||||||
.Add(new JoinQueryInfo()
|
.Add(new JoinQueryInfo()
|
||||||
{
|
{
|
||||||
JoinIndex = SqlBuilder.LambadaQueryBuilder.JoinIndex,
|
JoinIndex = QueryBuilder.JoinIndex,
|
||||||
TableName = tableName,
|
TableName = tableName,
|
||||||
ShortName = shortName,
|
ShortName = shortName,
|
||||||
JoinType = type,
|
JoinType = type,
|
||||||
@@ -61,10 +68,10 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public ISugarQueryable<T> Where<T2>(string whereString, object whereObj = null)
|
public ISugarQueryable<T> Where<T2>(string whereString, object whereObj = null)
|
||||||
{
|
{
|
||||||
var whereValue = SqlBuilder.LambadaQueryBuilder.WhereInfos;
|
var whereValue = QueryBuilder.WhereInfos;
|
||||||
whereValue.Add(SqlBuilder.AppendWhereOrAnd(whereValue.Count == 0, whereString));
|
whereValue.Add(SqlBuilder.AppendWhereOrAnd(whereValue.Count == 0, whereString));
|
||||||
if (whereObj != null)
|
if (whereObj != null)
|
||||||
this.SqlBuilder.LambadaQueryBuilder.QueryPars.AddRange(Context.Database.GetParameters(whereObj));
|
QueryBuilder.QueryPars.AddRange(Context.Database.GetParameters(whereObj));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Where<T2>(Expression<Func<T2, bool>> expression)
|
public ISugarQueryable<T> Where<T2>(Expression<Func<T2, bool>> expression)
|
||||||
@@ -148,8 +155,8 @@ namespace SqlSugar
|
|||||||
Where("1=2 ");
|
Where("1=2 ");
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
string filed = Context.Database.DbMaintenance.GetSinglePrimaryFiled(this.SqlBuilder.GetTableName(typeof(T).Name));
|
string filed = Context.Database.DbMaintenance.GetSinglePrimaryFiled(this.SqlBuilder.GetTranslationTableName(typeof(T).Name));
|
||||||
string shortName = this.SqlBuilder.LambadaQueryBuilder.TableShortName == null ? null : (this.SqlBuilder.LambadaQueryBuilder.TableShortName + ".");
|
string shortName = QueryBuilder.TableShortName == null ? null : (QueryBuilder.TableShortName + ".");
|
||||||
filed = shortName + filed;
|
filed = shortName + filed;
|
||||||
return In(filed, pkValues);
|
return In(filed, pkValues);
|
||||||
}
|
}
|
||||||
@@ -167,11 +174,11 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
if (inValues.GetType().IsArray)
|
if (inValues.GetType().IsArray)
|
||||||
{
|
{
|
||||||
var whereIndex = this.SqlBuilder.LambadaQueryBuilder.WhereIndex;
|
var whereIndex = QueryBuilder.WhereIndex;
|
||||||
string parameterName = this.SqlBuilder.SqlParameterKeyWord + "InPara" + whereIndex;
|
string parameterName = this.SqlBuilder.SqlParameterKeyWord + "InPara" + whereIndex;
|
||||||
this.Where(string.Format("{0} = {1} ", filed, parameterName));
|
this.Where(string.Format(QueryBuilder.InTemplate, filed, parameterName));
|
||||||
this.AddParameters(new SqlParameter(parameterName, inValues[0]));
|
this.AddParameters(new SqlParameter(parameterName, inValues[0]));
|
||||||
this.SqlBuilder.LambadaQueryBuilder.WhereIndex++;
|
QueryBuilder.WhereIndex++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -183,7 +190,7 @@ namespace SqlSugar
|
|||||||
values.Add(item.ToString().ToSqlValue());
|
values.Add(item.ToString().ToSqlValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.Where(string.Format("{0} in ({1}) ", filed, string.Join(",", values)));
|
this.Where(string.Format(QueryBuilder.InTemplate, filed, string.Join(",", values)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -196,7 +203,7 @@ namespace SqlSugar
|
|||||||
values.Add(item.ToString().ToSqlValue());
|
values.Add(item.ToString().ToSqlValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.Where(string.Format("{0} in ({1}) ", filed, string.Join(",", values)));
|
this.Where(string.Format(QueryBuilder.InTemplate, filed, string.Join(",", values)));
|
||||||
|
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
@@ -204,20 +211,20 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, params FieldType[] inValues)
|
public ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, params FieldType[] inValues)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.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> OrderBy(string orderFileds)
|
public ISugarQueryable<T> OrderBy(string orderFileds)
|
||||||
{
|
{
|
||||||
var orderByValue = SqlBuilder.LambadaQueryBuilder.OrderByValue;
|
var orderByValue = QueryBuilder.OrderByValue;
|
||||||
if (SqlBuilder.LambadaQueryBuilder.OrderByValue.IsNullOrEmpty())
|
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.OrderByValue = "ORDER BY ";
|
QueryBuilder.OrderByValue = QueryBuilder.OrderByTemplate;
|
||||||
}
|
}
|
||||||
SqlBuilder.LambadaQueryBuilder.OrderByValue += string.IsNullOrEmpty(orderByValue) ? orderFileds : ("," + orderFileds);
|
QueryBuilder.OrderByValue += string.IsNullOrEmpty(orderByValue) ? orderFileds : ("," + orderFileds);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,35 +248,35 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public ISugarQueryable<T> GroupBy(string groupFileds)
|
public ISugarQueryable<T> GroupBy(string groupFileds)
|
||||||
{
|
{
|
||||||
var croupByValue = SqlBuilder.LambadaQueryBuilder.GroupByValue;
|
var croupByValue = QueryBuilder.GroupByValue;
|
||||||
if (SqlBuilder.LambadaQueryBuilder.GroupByValue.IsNullOrEmpty())
|
if (QueryBuilder.GroupByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.GroupByValue = "GROUP BY ";
|
QueryBuilder.GroupByValue = QueryBuilder.GroupByTemplate;
|
||||||
}
|
}
|
||||||
SqlBuilder.LambadaQueryBuilder.GroupByValue += string.IsNullOrEmpty(croupByValue) ? groupFileds : ("," + groupFileds);
|
QueryBuilder.GroupByValue += string.IsNullOrEmpty(croupByValue) ? groupFileds : ("," + groupFileds);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> Skip(int num)
|
public ISugarQueryable<T> Skip(int num)
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.Skip = num;
|
QueryBuilder.Skip = num;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> Take(int num)
|
public ISugarQueryable<T> Take(int num)
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.Take = num;
|
QueryBuilder.Take = num;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public T Single()
|
public T Single()
|
||||||
{
|
{
|
||||||
if (SqlBuilder.LambadaQueryBuilder.OrderByValue.IsNullOrEmpty())
|
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.OrderByValue = " ORDER BY GETDATE()";
|
QueryBuilder.OrderByValue = QueryBuilder.DefaultOrderByTemplate;
|
||||||
}
|
}
|
||||||
SqlBuilder.LambadaQueryBuilder.Skip = 0;
|
QueryBuilder.Skip = 0;
|
||||||
SqlBuilder.LambadaQueryBuilder.Take = 1;
|
QueryBuilder.Take = 1;
|
||||||
var reval = this.ToList();
|
var reval = this.ToList();
|
||||||
if (reval.IsValuable())
|
if (reval.IsValuable())
|
||||||
{
|
{
|
||||||
@@ -289,12 +296,12 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public T First()
|
public T First()
|
||||||
{
|
{
|
||||||
if (SqlBuilder.LambadaQueryBuilder.OrderByValue.IsNullOrEmpty())
|
if (QueryBuilder.OrderByValue.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.OrderByValue = " ORDER BY GETDATE()";
|
QueryBuilder.OrderByValue = QueryBuilder.DefaultOrderByTemplate;
|
||||||
}
|
}
|
||||||
SqlBuilder.LambadaQueryBuilder.Skip = 0;
|
QueryBuilder.Skip = 0;
|
||||||
SqlBuilder.LambadaQueryBuilder.Take = 1;
|
QueryBuilder.Take = 1;
|
||||||
var reval = this.ToList();
|
var reval = this.ToList();
|
||||||
if (reval.IsValuable())
|
if (reval.IsValuable())
|
||||||
{
|
{
|
||||||
@@ -361,75 +368,75 @@ namespace SqlSugar
|
|||||||
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
||||||
reval.Context = this.Context;
|
reval.Context = this.Context;
|
||||||
reval.SqlBuilder = this.SqlBuilder;
|
reval.SqlBuilder = this.SqlBuilder;
|
||||||
SqlBuilder.LambadaQueryBuilder.SelectValue = selectValue;
|
QueryBuilder.SelectValue = selectValue;
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> Select(string selectValue)
|
public ISugarQueryable<T> Select(string selectValue)
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.SelectValue = selectValue;
|
QueryBuilder.SelectValue = selectValue;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Count()
|
public int Count()
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.IsCount = true;
|
QueryBuilder.IsCount = true;
|
||||||
var sql = SqlBuilder.LambadaQueryBuilder.ToSqlString();
|
var sql = QueryBuilder.ToSqlString();
|
||||||
var reval = Context.Database.GetInt(sql, SqlBuilder.LambadaQueryBuilder.QueryPars.ToArray());
|
var reval = Context.Database.GetInt(sql, QueryBuilder.QueryPars.ToArray());
|
||||||
SqlBuilder.LambadaQueryBuilder.IsCount = false;
|
QueryBuilder.IsCount = false;
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TResult Max<TResult>(string maxField)
|
public TResult Max<TResult>(string maxField)
|
||||||
{
|
{
|
||||||
this.Select("Max("+ 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, object>> expression)
|
public TResult Max<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.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 TResult Min<TResult>(string minField)
|
||||||
{
|
{
|
||||||
this.Select("Min("+ 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, object>> expression)
|
public TResult Min<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.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 TResult Sum<TResult>(string sumField)
|
||||||
{
|
{
|
||||||
this.Select("Sum(" + 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, object>> expression)
|
public TResult Sum<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.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 TResult Avg<TResult>(string avgField)
|
||||||
{
|
{
|
||||||
this.Select("Sum(" + 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, object>> expression)
|
public TResult Avg<TResult>(Expression<Func<T, TResult>> expression)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.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 List<T> ToList()
|
public List<T> ToList()
|
||||||
@@ -444,23 +451,23 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public string ToJsonPage(int pageIndex, int pageSize)
|
public 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 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 KeyValuePair<string, List<SugarParameter>> ToSql()
|
public KeyValuePair<string, List<SugarParameter>> ToSql()
|
||||||
{
|
{
|
||||||
string sql = SqlBuilder.LambadaQueryBuilder.ToSqlString();
|
string sql = QueryBuilder.ToSqlString();
|
||||||
return new KeyValuePair<string, List<SugarParameter>>(sql, SqlBuilder.LambadaQueryBuilder.QueryPars);
|
return new KeyValuePair<string, List<SugarParameter>>(sql, QueryBuilder.QueryPars);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISugarQueryable<T> With(string withString)
|
public ISugarQueryable<T> With(string withString)
|
||||||
{
|
{
|
||||||
SqlBuilder.LambadaQueryBuilder.TableWithString = withString;
|
QueryBuilder.TableWithString = withString;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -475,24 +482,23 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
if (pageIndex == 0)
|
if (pageIndex == 0)
|
||||||
pageIndex = 1;
|
pageIndex = 1;
|
||||||
SqlBuilder.LambadaQueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
QueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
||||||
SqlBuilder.LambadaQueryBuilder.Take = pageSize;
|
QueryBuilder.Take = pageSize;
|
||||||
return ToDataTable();
|
return ToDataTable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber)
|
public 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> ToPageList(int pageIndex, int pageSize)
|
public List<T> ToPageList(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
if (pageIndex == 0)
|
if (pageIndex == 0)
|
||||||
pageIndex = 1;
|
pageIndex = 1;
|
||||||
SqlBuilder.LambadaQueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
QueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
||||||
SqlBuilder.LambadaQueryBuilder.Take = pageSize;
|
QueryBuilder.Take = pageSize;
|
||||||
return ToList();
|
return ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -509,27 +515,27 @@ namespace SqlSugar
|
|||||||
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
||||||
reval.Context = this.Context;
|
reval.Context = this.Context;
|
||||||
reval.SqlBuilder = this.SqlBuilder;
|
reval.SqlBuilder = this.SqlBuilder;
|
||||||
reval.SqlBuilder.LambadaQueryBuilder.QueryPars = this.SqlBuilder.LambadaQueryBuilder.QueryPars;
|
reval.SqlBuilder.QueryBuilder.QueryPars = QueryBuilder.QueryPars;
|
||||||
reval.SqlBuilder.LambadaQueryBuilder.SelectValue = expression;
|
reval.SqlBuilder.QueryBuilder.SelectValue = expression;
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
protected void _Where(Expression expression)
|
protected void _Where(Expression expression)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var result = SqlBuilder.LambadaQueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple);
|
var result = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple);
|
||||||
SqlBuilder.LambadaQueryBuilder.WhereInfos.Add(SqlBuilder.AppendWhereOrAnd(SqlBuilder.LambadaQueryBuilder.WhereInfos.IsNullOrEmpty(), result.GetResultString()));
|
QueryBuilder.WhereInfos.Add(SqlBuilder.AppendWhereOrAnd(QueryBuilder.WhereInfos.IsNullOrEmpty(), result.GetResultString()));
|
||||||
}
|
}
|
||||||
protected ISugarQueryable<T> _OrderBy(Expression expression, OrderByType type = OrderByType.Asc)
|
protected ISugarQueryable<T> _OrderBy(Expression expression, OrderByType type = OrderByType.Asc)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
OrderBy(lamResult.GetResultString() + " " + type.ToString().ToUpper());
|
OrderBy(lamResult.GetResultString() + PubConst.Space + type.ToString().ToUpper());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
protected ISugarQueryable<T> _GroupBy(Expression expression)
|
protected ISugarQueryable<T> _GroupBy(Expression expression)
|
||||||
{
|
{
|
||||||
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
|
var isSingle = QueryBuilder.IsSingle();
|
||||||
var lamResult = SqlBuilder.LambadaQueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
GroupBy(lamResult.GetResultString());
|
GroupBy(lamResult.GetResultString());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -537,7 +543,7 @@ namespace SqlSugar
|
|||||||
private List<TResult> _ToList<TResult>()
|
private List<TResult> _ToList<TResult>()
|
||||||
{
|
{
|
||||||
var sqlObj = this.ToSql();
|
var sqlObj = this.ToSql();
|
||||||
var isComplexModel = Regex.IsMatch(sqlObj.Key, @"AS \[\w+\.\w+\]");
|
var isComplexModel = QueryBuilder.IsComplexModel(sqlObj.Key);
|
||||||
using (var dataReader = this.Db.GetDataReader(sqlObj.Key, sqlObj.Value.ToArray()))
|
using (var dataReader = this.Db.GetDataReader(sqlObj.Key, sqlObj.Value.ToArray()))
|
||||||
{
|
{
|
||||||
var tType = typeof(TResult);
|
var tType = typeof(TResult);
|
||||||
@@ -547,7 +553,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var reval = this.Bind.DataReaderToList<TResult>(tType, dataReader, SqlBuilder.LambadaQueryBuilder.SelectCacheKey);
|
var reval = this.Bind.DataReaderToList<TResult>(tType, dataReader, QueryBuilder.SelectCacheKey);
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilder Sql
|
public StringBuilder sql
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@@ -18,7 +18,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilder Sql
|
public StringBuilder sql
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@@ -4,12 +4,14 @@ using System.Data.SqlClient;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace SqlSugar
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
public abstract class LambadaQueryBuilder : IDMLBuilder
|
public abstract class QueryBuilder : IDMLBuilder
|
||||||
{
|
{
|
||||||
|
|
||||||
public LambadaQueryBuilder()
|
public QueryBuilder()
|
||||||
{
|
{
|
||||||
this.QueryPars = new List<SugarParameter>();
|
this.QueryPars = new List<SugarParameter>();
|
||||||
}
|
}
|
||||||
@@ -21,7 +23,7 @@ namespace SqlSugar
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Service object
|
#region Service object
|
||||||
public StringBuilder Sql { get; set; }
|
public StringBuilder sql { get; set; }
|
||||||
public SqlSugarClient Context { get; set; }
|
public SqlSugarClient Context { get; set; }
|
||||||
public ILambdaExpressions LambdaExpressions { get; set; }
|
public ILambdaExpressions LambdaExpressions { get; set; }
|
||||||
public ISqlBuilder Builder { get; set; }
|
public ISqlBuilder Builder { get; set; }
|
||||||
@@ -83,25 +85,79 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return "SELECT {0} FROM {1} {2} {3} {4}";
|
return "SELECT {0} FROM {1}{2}{3}{4} ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public virtual string JoinTemplate
|
public virtual string JoinTemplate
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return " {0} JOIN {1} {2} ON {3} ";
|
return "{0}JOIN {1}{2}ON {3} ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public virtual string PageTempalte
|
public virtual string PageTempalte
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return @"
|
return @"WITH PageTable AS(
|
||||||
WITH PageTable AS(
|
|
||||||
{0}
|
{0}
|
||||||
)
|
)
|
||||||
SELECT * FROM (SELECT *,ROW_NUMBER() OVER({1}) AS RowIndex FROM PageTable ) T BETWEEN {2} AND {3}";
|
SELECT * FROM (SELECT *,ROW_NUMBER() OVER({1}) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN {2} AND {3}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string DefaultOrderByTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "ORDER BY GETDATE() ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string OrderByTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "ORDER BY ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string GroupByTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "GROUP BY ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string MaxTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "MAX({0})";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string MinTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "MIN({0})";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string SumTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "SUM({0})";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string AvgTemplate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "AVG({0})";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public virtual string InTemplate {
|
||||||
|
get {
|
||||||
|
return "{0} IN ({1}) ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -109,14 +165,14 @@ namespace SqlSugar
|
|||||||
#region Common Methods
|
#region Common Methods
|
||||||
public virtual bool IsSingle()
|
public virtual bool IsSingle()
|
||||||
{
|
{
|
||||||
var isSingle = Builder.LambadaQueryBuilder.JoinQueryInfos.IsNullOrEmpty();
|
var isSingle = Builder.QueryBuilder.JoinQueryInfos.IsNullOrEmpty();
|
||||||
return isSingle;
|
return isSingle;
|
||||||
}
|
}
|
||||||
public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType)
|
public virtual ExpressionResult GetExpressionValue(Expression expression, ResolveExpressType resolveType)
|
||||||
{
|
{
|
||||||
ILambdaExpressions resolveExpress = this.LambdaExpressions;
|
ILambdaExpressions resolveExpress = this.LambdaExpressions;
|
||||||
this.LambdaExpressions.Clear();
|
this.LambdaExpressions.Clear();
|
||||||
resolveExpress.JoinQueryInfos = Builder.LambadaQueryBuilder.JoinQueryInfos;
|
resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos;
|
||||||
resolveExpress.MappingColumns = Context.MappingColumns;
|
resolveExpress.MappingColumns = Context.MappingColumns;
|
||||||
resolveExpress.MappingTables = Context.MappingTables;
|
resolveExpress.MappingTables = Context.MappingTables;
|
||||||
resolveExpress.IgnoreComumnList = Context.IgnoreComumns;
|
resolveExpress.IgnoreComumnList = Context.IgnoreComumns;
|
||||||
@@ -128,39 +184,41 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual string ToSqlString()
|
public virtual string ToSqlString()
|
||||||
{
|
{
|
||||||
Sql = new StringBuilder();
|
sql = new StringBuilder();
|
||||||
Sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString, GetOrderByString);
|
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString,(Skip!=null||Take!=null)?null:GetOrderByString);
|
||||||
|
if (IsCount) { return sql.ToString(); }
|
||||||
if (Skip != null && Take == null)
|
if (Skip != null && Take == null)
|
||||||
{
|
{
|
||||||
return string.Format(PageTempalte, Sql.ToString(), GetOrderByString, 0,Take);
|
return string.Format(PageTempalte, sql.ToString(), GetOrderByString, Skip.ObjToInt() + 1, long.MaxValue);
|
||||||
}
|
}
|
||||||
else if (Skip == null && Take != null)
|
else if (Skip == null && Take != null)
|
||||||
{
|
{
|
||||||
return string.Format(PageTempalte, Sql.ToString(), GetOrderByString, Skip+1,long.MaxValue);
|
return string.Format(PageTempalte, sql.ToString(), GetOrderByString, 1, Take.ObjToInt());
|
||||||
}
|
}
|
||||||
else if (Skip != null && Take == null)
|
else if (Skip != null && Take != null)
|
||||||
{
|
{
|
||||||
return string.Format(PageTempalte, Sql.ToString(), GetOrderByString, Skip+1, Take);
|
return string.Format(PageTempalte, sql.ToString(), GetOrderByString, Skip.ObjToInt() + 1, Take);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
return Sql.ToString();
|
{
|
||||||
|
return sql.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public virtual string ToJoinString(JoinQueryInfo joinInfo)
|
public virtual string ToJoinString(JoinQueryInfo joinInfo)
|
||||||
{
|
{
|
||||||
return string.Format(
|
return string.Format(
|
||||||
this.JoinTemplate,
|
this.JoinTemplate,
|
||||||
joinInfo.JoinType.ToString(),
|
joinInfo.JoinType.ToString() + PubConst.Space,
|
||||||
joinInfo.TableName,
|
joinInfo.TableName + PubConst.Space,
|
||||||
joinInfo.ShortName + " " + joinInfo.TableWithString,
|
joinInfo.ShortName + PubConst.Space + joinInfo.TableWithString,
|
||||||
joinInfo.JoinWhere);
|
joinInfo.JoinWhere);
|
||||||
}
|
}
|
||||||
public virtual void Clear()
|
public virtual void Clear()
|
||||||
{
|
{
|
||||||
this.Skip = 0;
|
this.Skip = 0;
|
||||||
this.Take = 0;
|
this.Take = 0;
|
||||||
this.Sql = null;
|
this.sql = null;
|
||||||
this.WhereIndex = 0;
|
this.WhereIndex = 0;
|
||||||
this.QueryPars = null;
|
this.QueryPars = null;
|
||||||
this.GroupByValue = null;
|
this.GroupByValue = null;
|
||||||
@@ -168,6 +226,10 @@ namespace SqlSugar
|
|||||||
this.WhereInfos = null;
|
this.WhereInfos = null;
|
||||||
this.JoinQueryInfos = null;
|
this.JoinQueryInfos = null;
|
||||||
}
|
}
|
||||||
|
public virtual bool IsComplexModel(string sql)
|
||||||
|
{
|
||||||
|
return Regex.IsMatch(sql, @"AS \[\w+\.\w+\]");
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Get SQL Partial
|
#region Get SQL Partial
|
||||||
@@ -175,7 +237,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (this.IsCount) return " COUNT(1) ";
|
if (this.IsCount) return "COUNT(1) AS [Count] ";
|
||||||
string reval = string.Empty;
|
string reval = string.Empty;
|
||||||
if (this.SelectValue == null || this.SelectValue is string)
|
if (this.SelectValue == null || this.SelectValue is string)
|
||||||
{
|
{
|
||||||
@@ -226,7 +288,7 @@ namespace SqlSugar
|
|||||||
if (this.WhereInfos == null) return null;
|
if (this.WhereInfos == null) return null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return string.Join(" ", this.WhereInfos);
|
return string.Join(PubConst.Space, this.WhereInfos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -237,7 +299,7 @@ namespace SqlSugar
|
|||||||
if (this.JoinQueryInfos.IsNullOrEmpty()) return null;
|
if (this.JoinQueryInfos.IsNullOrEmpty()) return null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return string.Join(" ", this.JoinQueryInfos.Select(it => this.ToJoinString(it)));
|
return string.Join(PubConst.Space, this.JoinQueryInfos.Select(it => this.ToJoinString(it)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -246,22 +308,22 @@ namespace SqlSugar
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
var result = Builder.GetTranslationTableName(EntityName);
|
var result = Builder.GetTranslationTableName(EntityName);
|
||||||
|
result += PubConst.Space;
|
||||||
if (this.TableWithString.IsValuable())
|
if (this.TableWithString.IsValuable())
|
||||||
{
|
{
|
||||||
result += " " + TableWithString;
|
result += TableWithString + PubConst.Space;
|
||||||
}
|
}
|
||||||
if (this.TableShortName.IsValuable())
|
if (this.TableShortName.IsValuable())
|
||||||
{
|
{
|
||||||
result += " " + TableShortName;
|
result += (TableShortName + PubConst.Space);
|
||||||
}
|
}
|
||||||
if (!this.IsSingle())
|
if (!this.IsSingle())
|
||||||
{
|
{
|
||||||
result = result + " " + GetJoinValueString;
|
result += GetJoinValueString + PubConst.Space;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string GetOrderByString
|
public virtual string GetOrderByString
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -269,7 +331,6 @@ namespace SqlSugar
|
|||||||
return this.OrderByValue;
|
return this.OrderByValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string GetGroupByString
|
public virtual string GetGroupByString
|
||||||
{
|
{
|
||||||
get
|
get
|
@@ -16,7 +16,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
if (this._Fields.IsNullOrEmpty())
|
if (this._Fields.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
this._Fields = Regex.Match(this.Sql.ToString(), @"select(.*?)from", RegexOptions.IgnoreCase).Groups[1].Value;
|
this._Fields = Regex.Match(this.sql.ToString(), @"select(.*?)from", RegexOptions.IgnoreCase).Groups[1].Value;
|
||||||
if (this._Fields.IsNullOrEmpty())
|
if (this._Fields.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
this._Fields = "*";
|
this._Fields = "*";
|
||||||
@@ -30,7 +30,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private StringBuilder _Sql;
|
private StringBuilder _Sql;
|
||||||
public StringBuilder Sql
|
public StringBuilder sql
|
||||||
{
|
{
|
||||||
get {
|
get {
|
||||||
_Sql = PubMethod.IsNullReturnNew(_Sql);
|
_Sql = PubMethod.IsNullReturnNew(_Sql);
|
||||||
@@ -58,7 +58,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public void Clear()
|
public void Clear()
|
||||||
{
|
{
|
||||||
this.Sql = null;
|
this.sql = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -20,7 +20,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilder Sql
|
public StringBuilder sql
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@@ -10,7 +10,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
protected InsertBuilder _InsertBuilder;
|
protected InsertBuilder _InsertBuilder;
|
||||||
|
|
||||||
protected LambadaQueryBuilder _LambadaQueryBuilder;
|
protected QueryBuilder _QueryBuilder;
|
||||||
|
|
||||||
protected SqlQueryBuilder _SqlQueryBuilder;
|
protected SqlQueryBuilder _SqlQueryBuilder;
|
||||||
|
|
||||||
|
@@ -17,7 +17,6 @@ namespace SqlSugar
|
|||||||
public virtual string SqlParameterKeyWord { get { return "@"; } }
|
public virtual string SqlParameterKeyWord { get { return "@"; } }
|
||||||
public abstract string GetTranslationTableName(string name);
|
public abstract string GetTranslationTableName(string name);
|
||||||
public abstract string GetTranslationColumnName(string name);
|
public abstract string GetTranslationColumnName(string name);
|
||||||
public abstract string GetTableName(string name);
|
|
||||||
|
|
||||||
public string AppendWhereOrAnd(bool isWhere, string sqlString)
|
public string AppendWhereOrAnd(bool isWhere, string sqlString)
|
||||||
{
|
{
|
||||||
@@ -46,7 +45,7 @@ namespace SqlSugar
|
|||||||
set { base._InsertBuilder = value; }
|
set { base._InsertBuilder = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public LambadaQueryBuilder LambadaQueryBuilder
|
public QueryBuilder QueryBuilder
|
||||||
{
|
{
|
||||||
get;set;
|
get;set;
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,7 @@ namespace SqlSugar
|
|||||||
internal static class PubConst
|
internal static class PubConst
|
||||||
{
|
{
|
||||||
internal const string AssemblyName = "SqlSugar";
|
internal const string AssemblyName = "SqlSugar";
|
||||||
|
internal const string Space = " ";
|
||||||
internal static Type StringType = typeof(string);
|
internal static Type StringType = typeof(string);
|
||||||
internal static Type IntType = typeof(int);
|
internal static Type IntType = typeof(int);
|
||||||
internal static Type DecType = typeof(decimal);
|
internal static Type DecType = typeof(decimal);
|
||||||
|
@@ -17,15 +17,6 @@ namespace SqlSugar
|
|||||||
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
||||||
return "[" + (mappingInfo == null ? name : mappingInfo.DbTableName) + "]";
|
return "[" + (mappingInfo == null ? name : mappingInfo.DbTableName) + "]";
|
||||||
}
|
}
|
||||||
public override string GetTableName(string name)
|
|
||||||
{
|
|
||||||
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name"));
|
|
||||||
var context = this.Context;
|
|
||||||
var mappingInfo = context
|
|
||||||
.MappingTables
|
|
||||||
.FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
|
||||||
return "[" + (mappingInfo == null ? name : mappingInfo.DbTableName) + "]";
|
|
||||||
}
|
|
||||||
public override string GetTranslationColumnName(string name)
|
public override string GetTranslationColumnName(string name)
|
||||||
{
|
{
|
||||||
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name"));
|
Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name"));
|
||||||
@@ -33,7 +24,7 @@ namespace SqlSugar
|
|||||||
var mappingInfo = context
|
var mappingInfo = context
|
||||||
.MappingColumns
|
.MappingColumns
|
||||||
.FirstOrDefault(it => it.EntityPropertyName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
.FirstOrDefault(it => it.EntityPropertyName.Equals(name, StringComparison.CurrentCultureIgnoreCase));
|
||||||
return (mappingInfo == null ? name : mappingInfo.DbColumnName);
|
return (mappingInfo == null ? "["+name+"]" : mappingInfo.DbColumnName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace SqlSugar
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
public class SqlServerLambadaQueryBuilder: LambadaQueryBuilder
|
public class SqlServerQueryBuilder: QueryBuilder
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,10 +19,10 @@ namespace SqlSugar
|
|||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LambadaQueryBuilder GetLambadaQueryBuilder(IConnectionConfig currentConnectionConfig)
|
public static QueryBuilder GetQueryBuilder(IConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
CheckConfig(currentConnectionConfig);
|
CheckConfig(currentConnectionConfig);
|
||||||
LambadaQueryBuilder reval = CreateInstance<LambadaQueryBuilder>(GetClassName(currentConnectionConfig.DbType, "LambadaQueryBuilder"), currentConnectionConfig.DbType);
|
QueryBuilder reval = CreateInstance<QueryBuilder>(GetClassName(currentConnectionConfig.DbType, "QueryBuilder"), currentConnectionConfig.DbType);
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -68,13 +68,13 @@ namespace SqlSugar
|
|||||||
|
|
||||||
int Count();
|
int Count();
|
||||||
TResult Max<TResult>(string maxField);
|
TResult Max<TResult>(string maxField);
|
||||||
TResult Max<TResult>(Expression<Func<T, object>> expression);
|
TResult Max<TResult>(Expression<Func<T, TResult>> expression);
|
||||||
TResult Min<TResult>(string minField);
|
TResult Min<TResult>(string minField);
|
||||||
TResult Min<TResult>(Expression<Func<T, object>> expression);
|
TResult Min<TResult>(Expression<Func<T, TResult>> expression);
|
||||||
TResult Sum<TResult>(string sumField);
|
TResult Sum<TResult>(string sumField);
|
||||||
TResult Sum<TResult>(Expression<Func<T, object>> expression);
|
TResult Sum<TResult>(Expression<Func<T, TResult>> expression);
|
||||||
TResult Avg<TResult>(string avgField);
|
TResult Avg<TResult>(string avgField);
|
||||||
TResult Avg<TResult>(Expression<Func<T, object>> expression);
|
TResult Avg<TResult>(Expression<Func<T, TResult>> expression);
|
||||||
|
|
||||||
List<T> ToList();
|
List<T> ToList();
|
||||||
|
|
||||||
|
@@ -9,7 +9,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
string SqlTemplate { get; }
|
string SqlTemplate { get; }
|
||||||
SqlSugarClient Context { get; set; }
|
SqlSugarClient Context { get; set; }
|
||||||
StringBuilder Sql { get; set; }
|
StringBuilder sql { get; set; }
|
||||||
string ToSqlString();
|
string ToSqlString();
|
||||||
void Clear();
|
void Clear();
|
||||||
}
|
}
|
||||||
|
@@ -12,14 +12,13 @@ namespace SqlSugar
|
|||||||
CommandType CommandType { get; set; }
|
CommandType CommandType { get; set; }
|
||||||
String AppendWhereOrAnd(bool isWhere, string sqlString);
|
String AppendWhereOrAnd(bool isWhere, string sqlString);
|
||||||
SqlQueryBuilder SqlQueryBuilder { get; set; }
|
SqlQueryBuilder SqlQueryBuilder { get; set; }
|
||||||
LambadaQueryBuilder LambadaQueryBuilder { get; set; }
|
QueryBuilder QueryBuilder { get; set; }
|
||||||
InsertBuilder InsertBuilder { get; set; }
|
InsertBuilder InsertBuilder { get; set; }
|
||||||
DeleteBuilder DeleteBuilder { get; set; }
|
DeleteBuilder DeleteBuilder { get; set; }
|
||||||
UpdateBuilder UpdateBuilder { get; set; }
|
UpdateBuilder UpdateBuilder { get; set; }
|
||||||
|
|
||||||
string SqlParameterKeyWord { get; }
|
string SqlParameterKeyWord { get; }
|
||||||
string GetTranslationTableName(string name);
|
string GetTranslationTableName(string name);
|
||||||
string GetTableName(string name);
|
|
||||||
string GetTranslationColumnName(string name);
|
string GetTranslationColumnName(string name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -59,7 +59,7 @@
|
|||||||
<Compile Include="Abstract\QueryableProvider\QueryableProvider.cs" />
|
<Compile Include="Abstract\QueryableProvider\QueryableProvider.cs" />
|
||||||
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\DeleteBuilder.cs" />
|
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\DeleteBuilder.cs" />
|
||||||
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\InsertBuilder.cs" />
|
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\InsertBuilder.cs" />
|
||||||
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\LambadaQueryBuilder.cs" />
|
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\QueryBuilder.cs" />
|
||||||
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\SqlQueryBuilder.cs" />
|
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\SqlQueryBuilder.cs" />
|
||||||
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\UpdateBuilder.cs" />
|
<Compile Include="Abstract\SqlBuilderProvider\DMLBuilder\UpdateBuilder.cs" />
|
||||||
<Compile Include="Abstract\SqlBuilderProvider\SqlBuilderAccessory.cs" />
|
<Compile Include="Abstract\SqlBuilderProvider\SqlBuilderAccessory.cs" />
|
||||||
|
@@ -121,11 +121,11 @@ namespace SqlSugar
|
|||||||
reval.Context = this;
|
reval.Context = this;
|
||||||
var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ;
|
var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ;
|
||||||
reval.SqlBuilder = sqlBuilder;
|
reval.SqlBuilder = sqlBuilder;
|
||||||
reval.SqlBuilder.LambadaQueryBuilder = InstanceFactory.GetLambadaQueryBuilder(base.CurrentConnectionConfig);
|
reval.SqlBuilder.QueryBuilder = InstanceFactory.GetQueryBuilder(base.CurrentConnectionConfig);
|
||||||
reval.SqlBuilder.LambadaQueryBuilder.Builder = sqlBuilder;
|
reval.SqlBuilder.QueryBuilder.Builder = sqlBuilder;
|
||||||
reval.SqlBuilder.Context = reval.SqlBuilder.LambadaQueryBuilder.Context = this;
|
reval.SqlBuilder.Context = reval.SqlBuilder.QueryBuilder.Context = this;
|
||||||
reval.SqlBuilder.LambadaQueryBuilder.EntityName = typeof(T).Name;
|
reval.SqlBuilder.QueryBuilder.EntityName = typeof(T).Name;
|
||||||
reval.SqlBuilder.LambadaQueryBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(base.CurrentConnectionConfig);
|
reval.SqlBuilder.QueryBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(base.CurrentConnectionConfig);
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -134,9 +134,9 @@ namespace SqlSugar
|
|||||||
public virtual ISugarQueryable<SugarDynamic> Queryable(string tableName, string shortName, string widthString = null)
|
public virtual ISugarQueryable<SugarDynamic> Queryable(string tableName, string shortName, string widthString = null)
|
||||||
{
|
{
|
||||||
var queryable = Queryable<SugarDynamic>();
|
var queryable = Queryable<SugarDynamic>();
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.EntityName = tableName;
|
queryable.SqlBuilder.QueryBuilder.EntityName = tableName;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableWithString = widthString;
|
queryable.SqlBuilder.QueryBuilder.TableWithString = widthString;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -145,80 +145,80 @@ namespace SqlSugar
|
|||||||
public virtual ISugarQueryable<T> Queryable<T>(string shortName, string widthString = null) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T>(string shortName, string widthString = null) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableWithString = widthString;
|
queryable.SqlBuilder.QueryBuilder.TableWithString = widthString;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2>(Expression<Func<T, T2, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2>(Expression<Func<T, T2, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3>(Expression<Func<T, T2, T3, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3>(Expression<Func<T, T2, T3, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4>(Expression<Func<T, T2, T3, T4, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4>(Expression<Func<T, T2, T3, T4, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5>(Expression<Func<T, T2, T3, T4, T5, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5>(Expression<Func<T, T2, T3, T4, T5, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6>(Expression<Func<T, T2, T3, T4, T5, T6, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6>(Expression<Func<T, T2, T3, T4, T5, T6, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7>(Expression<Func<T, T2, T3, T4, T5, T6, T7, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7>(Expression<Func<T, T2, T3, T4, T5, T6, T7, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T10, object[]>> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T10, object[]>> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
var queryable = Queryable<T>();
|
var queryable = Queryable<T>();
|
||||||
string shortName = string.Empty;
|
string shortName = string.Empty;
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10));
|
queryable.SqlBuilder.QueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression, this, ref shortName, typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10));
|
||||||
queryable.SqlBuilder.LambadaQueryBuilder.TableShortName = shortName;
|
queryable.SqlBuilder.QueryBuilder.TableShortName = shortName;
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +226,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
var dbPars = this.Database.GetParameters(pars);
|
var dbPars = this.Database.GetParameters(pars);
|
||||||
var builder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig);
|
var builder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig);
|
||||||
builder.SqlQueryBuilder.Sql.Append(sql);
|
builder.SqlQueryBuilder.sql.Append(sql);
|
||||||
using (var dataReader = this.Database.GetDataReader(sql, dbPars))
|
using (var dataReader = this.Database.GetDataReader(sql, dbPars))
|
||||||
{
|
{
|
||||||
var reval = this.Database.DbBind.DataReaderToList<T>(typeof(T), dataReader, builder.SqlQueryBuilder.Fields);
|
var reval = this.Database.DbBind.DataReaderToList<T>(typeof(T), dataReader, builder.SqlQueryBuilder.Fields);
|
||||||
|
Reference in New Issue
Block a user