mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-02-26 13:43:10 +08:00
-
This commit is contained in:
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest.Demo
|
||||
{
|
||||
public class Query:DemoBase
|
||||
public class Query : DemoBase
|
||||
{
|
||||
|
||||
public static void Init()
|
||||
@@ -38,11 +38,11 @@ namespace OrmTest.Demo
|
||||
});
|
||||
|
||||
//2. has result
|
||||
var result= db.Ado.UseStoredProcedure<dynamic>(() =>
|
||||
{
|
||||
string spName = "sp_help";
|
||||
return db.Ado.SqlQueryDynamic(spName, new { objname = "student" });
|
||||
});
|
||||
var result = db.Ado.UseStoredProcedure<dynamic>(() =>
|
||||
{
|
||||
string spName = "sp_help";
|
||||
return db.Ado.SqlQueryDynamic(spName, new { objname = "student" });
|
||||
});
|
||||
|
||||
//2. has output
|
||||
object outPutValue;
|
||||
@@ -50,8 +50,8 @@ namespace OrmTest.Demo
|
||||
{
|
||||
string spName = "sp_school";
|
||||
var p1 = new SugarParameter("@p1", "1");
|
||||
var p2= new SugarParameter("@p2", null,true);//isOutput=true
|
||||
var dbResult= db.Ado.SqlQueryDynamic(spName,new SugarParameter[] {p1,p2 });
|
||||
var p2 = new SugarParameter("@p2", null, true);//isOutput=true
|
||||
var dbResult = db.Ado.SqlQueryDynamic(spName, new SugarParameter[] { p1, p2 });
|
||||
outPutValue = p2.Value;
|
||||
return dbResult;
|
||||
});
|
||||
@@ -97,6 +97,11 @@ namespace OrmTest.Demo
|
||||
.GroupBy(it => it.Id).Having(it => SqlFunc.AggregateAvg(it.Id) > 0)
|
||||
.Select(it => new { idAvg = SqlFunc.AggregateAvg(it.Id), name = it.Name }).ToList();
|
||||
|
||||
|
||||
var list2 = db.Queryable<Student>()
|
||||
.GroupBy(it => new { it.Id, it.Name }).Having(it => SqlFunc.AggregateAvg(it.Id) > 0)
|
||||
.Select(it => new { idAvg = SqlFunc.AggregateAvg(it.Id), name = it.Name }).ToList();
|
||||
|
||||
//SQL:
|
||||
//SELECT AVG([Id]) AS[idAvg], [Name] AS[name] FROM[Student] GROUP BY[Name],[Id] HAVING(AVG([Id]) > 0 )
|
||||
|
||||
@@ -120,7 +125,7 @@ namespace OrmTest.Demo
|
||||
var db = GetInstance();
|
||||
var getAll = db.Queryable<Student>().ToList();
|
||||
var getId = db.Queryable<Student>().Select(it => it.Id).ToList();
|
||||
var getNew= db.Queryable<Student>().Where(it=>it.Id==1).Select(it =>new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id),it.Name,it.SchoolId }).ToList();
|
||||
var getNew = db.Queryable<Student>().Where(it => it.Id == 1).Select(it => new { id = SqlFunc.IIF(it.Id == 0, 1, it.Id), it.Name, it.SchoolId }).ToList();
|
||||
var getAllNoLock = db.Queryable<Student>().With(SqlWith.NoLock).ToList();
|
||||
var getByPrimaryKey = db.Queryable<Student>().InSingle(2);
|
||||
var getSingleOrDefault = db.Queryable<Student>().Single();
|
||||
@@ -131,10 +136,10 @@ namespace OrmTest.Demo
|
||||
var isAny = db.Queryable<Student>().Where(it => it.Id == -1).Any();
|
||||
var isAny2 = db.Queryable<Student>().Any(it => it.Id == -1);
|
||||
var getListByRename = db.Queryable<School>().AS("Student").ToList();
|
||||
var in1 = db.Queryable<Student>().In(it=>it.Id,new int[] { 1, 2, 3 }).ToList();
|
||||
var in1 = db.Queryable<Student>().In(it => it.Id, new int[] { 1, 2, 3 }).ToList();
|
||||
var in2 = db.Queryable<Student>().In(new int[] { 1, 2, 3 }).ToList();
|
||||
int[] array = new int[] { 1, 2 };
|
||||
var in3 = db.Queryable<Student>().Where(it=>SqlFunc.ContainsArray(array, it.Id)).ToList();
|
||||
var in3 = db.Queryable<Student>().Where(it => SqlFunc.ContainsArray(array, it.Id)).ToList();
|
||||
var group = db.Queryable<Student>().GroupBy(it => it.Id)
|
||||
.Having(it => SqlFunc.AggregateCount(it.Id) > 10)
|
||||
.Select(it => new { id = SqlFunc.AggregateCount(it.Id) }).ToList();
|
||||
@@ -150,7 +155,7 @@ namespace OrmTest.Demo
|
||||
var pageSize = 2;
|
||||
var totalCount = 0;
|
||||
//page
|
||||
var page = db.Queryable<Student>().OrderBy(it=>it.Id).ToPageList(pageIndex, pageSize, ref totalCount);
|
||||
var page = db.Queryable<Student>().OrderBy(it => it.Id).ToPageList(pageIndex, pageSize, ref totalCount);
|
||||
|
||||
//page join
|
||||
var pageJoin = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||
@@ -283,7 +288,7 @@ namespace OrmTest.Demo
|
||||
private static void Enum()
|
||||
{
|
||||
var db = GetInstance();
|
||||
var list = db.Queryable<StudentEnum>().AS("Student").Where(it=>it.SchoolId== SchoolEnum.HarvardUniversity).ToList();
|
||||
var list = db.Queryable<StudentEnum>().AS("Student").Where(it => it.SchoolId == SchoolEnum.HarvardUniversity).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace SqlSugar
|
||||
}
|
||||
public IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
@@ -79,7 +79,7 @@ namespace SqlSugar
|
||||
|
||||
public IInsertable<T> InsertColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray();
|
||||
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -489,7 +489,12 @@ namespace SqlSugar
|
||||
{
|
||||
var isSingle = QueryBuilder.IsSingle();
|
||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||
GroupBy(lamResult.GetResultString());
|
||||
string result = lamResult.GetResultString();
|
||||
if (result.IsNullOrEmpty()) {
|
||||
lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.ArraySingle : ResolveExpressType.ArrayMultiple);
|
||||
result =string.Join(",",lamResult.GetResultArray().Select(it=>this.SqlBuilder.GetTranslationColumnName(typeof(T).Name,it)));
|
||||
}
|
||||
GroupBy(result);
|
||||
return this;
|
||||
}
|
||||
protected ISugarQueryable<T> _Having(Expression expression)
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace SqlSugar
|
||||
|
||||
public IUpdateable<T> IgnoreColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var ignoreColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
var ignoreColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray();
|
||||
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.PropertyName)).ToList();
|
||||
return this;
|
||||
}
|
||||
@@ -77,7 +77,7 @@ namespace SqlSugar
|
||||
|
||||
public IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
var updateColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Array).GetResultArray();
|
||||
var updateColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray();
|
||||
List<string> primaryKeys = GetPrimaryKeys();
|
||||
foreach (var item in this.UpdateBuilder.DbColumnInfoList)
|
||||
{
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace SqlSugar
|
||||
}
|
||||
switch (this._ResolveExpressType)
|
||||
{
|
||||
case ResolveExpressType.Array:
|
||||
case ResolveExpressType.ArraySingle:
|
||||
case ResolveExpressType.SelectSingle:
|
||||
case ResolveExpressType.SelectMultiple:
|
||||
case ResolveExpressType.Update:
|
||||
|
||||
@@ -14,8 +14,9 @@ namespace SqlSugar
|
||||
FieldSingle=5,
|
||||
FieldMultiple=7,
|
||||
Join=8,
|
||||
Array=9,
|
||||
Update=10
|
||||
ArraySingle=9,
|
||||
ArrayMultiple = 10,
|
||||
Update =11
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace SqlSugar
|
||||
fieldName = getMultipleName(parameter, expression, isLeft);
|
||||
base.Context.Result.Append(fieldName);
|
||||
break;
|
||||
case ResolveExpressType.Array:
|
||||
case ResolveExpressType.ArraySingle:
|
||||
fieldName = getArrayName(parameter, expression, isLeft);
|
||||
base.Context.Result.Append(fieldName);
|
||||
break;
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace SqlSugar
|
||||
case ResolveExpressType.FieldMultiple:
|
||||
Check.ThrowNotSupportedException("NewArrayExpression");
|
||||
break;
|
||||
case ResolveExpressType.Array:
|
||||
case ResolveExpressType.ArraySingle:
|
||||
foreach (var item in expression.Expressions)
|
||||
{
|
||||
base.Expression = item;
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace SqlSugar
|
||||
break;
|
||||
case ResolveExpressType.FieldMultiple:
|
||||
break;
|
||||
case ResolveExpressType.Array:
|
||||
case ResolveExpressType.ArraySingle:
|
||||
foreach (var item in expression.Arguments)
|
||||
{
|
||||
base.Expression = item;
|
||||
|
||||
Reference in New Issue
Block a user