mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +08:00
ADD SelectMergeAsTable
This commit is contained in:
parent
4f1844fa57
commit
8a91c7fb88
@ -1,5 +1,6 @@
|
|||||||
using OrmTest.Demo;
|
using OrmTest.Demo;
|
||||||
using OrmTest.Models;
|
using OrmTest.Models;
|
||||||
|
using SqlSugar;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -16,6 +17,19 @@ namespace OrmTest.Demo
|
|||||||
{
|
{
|
||||||
Where();
|
Where();
|
||||||
OrderBy();
|
OrderBy();
|
||||||
|
SelectMerge();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SelectMerge()
|
||||||
|
{
|
||||||
|
var db = GetInstance();
|
||||||
|
//page join
|
||||||
|
var pageJoin = db.Queryable<Student, School>((st, sc) => new object[] {
|
||||||
|
JoinType.Left,st.SchoolId==sc.Id
|
||||||
|
})
|
||||||
|
.Select((st,sc)=>new { id=st.Id,name=sc.Name})
|
||||||
|
.SelectMergeAsTable().Where(XXX=>XXX.id==1).OrderBy("name asc").ToList();// Prefix, is, not, necessary, and take the columns in select
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Where()
|
private static void Where()
|
||||||
|
@ -43,7 +43,7 @@ namespace OrmTest
|
|||||||
OrmTest.Demo.JoinSql.Init();
|
OrmTest.Demo.JoinSql.Init();
|
||||||
OrmTest.Demo.Filter.Init();
|
OrmTest.Demo.Filter.Init();
|
||||||
OrmTest.Demo.ComplexModel.Init();
|
OrmTest.Demo.ComplexModel.Init();
|
||||||
OrmTest.Demo.CodeFirst.Init();
|
OrmTest.Demo.CodeFirst.Init();;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -410,6 +410,14 @@ namespace SqlSugar
|
|||||||
QueryBuilder.SelectValue = selectValue;
|
QueryBuilder.SelectValue = selectValue;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
public virtual ISugarQueryable<T> SelectMergeAsTable()
|
||||||
|
{
|
||||||
|
Check.Exception(this.QueryBuilder.SelectValue.IsNullOrEmpty(), "SelectMergeAsTable need to use Select(it=>new{}) Method .");
|
||||||
|
Check.Exception(this.QueryBuilder.Skip > 0 || this.QueryBuilder.Take > 0, "SelectMergeAsTable Queryable cannot Take Skip OrderBy PageToList ");
|
||||||
|
var sql = QueryBuilder.ToSqlString();
|
||||||
|
var tableName = (string.Format("({0}) MergeAsTable ", sql));
|
||||||
|
return this.Context.Queryable<ExpandoObject>().AS(tableName).Select<T>("*");
|
||||||
|
}
|
||||||
|
|
||||||
public virtual int Count()
|
public virtual int Count()
|
||||||
{
|
{
|
||||||
|
@ -62,7 +62,7 @@ namespace SqlSugar
|
|||||||
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression);
|
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression);
|
||||||
ISugarQueryable<TResult> Select<TResult>(string select);
|
ISugarQueryable<TResult> Select<TResult>(string select);
|
||||||
ISugarQueryable<T> Select(string select);
|
ISugarQueryable<T> Select(string select);
|
||||||
|
ISugarQueryable<T> SelectMergeAsTable();
|
||||||
|
|
||||||
int Count();
|
int Count();
|
||||||
TResult Max<TResult>(string maxField);
|
TResult Max<TResult>(string maxField);
|
||||||
|
Loading…
Reference in New Issue
Block a user