mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
ADD SelectMergeAsTable
This commit is contained in:
parent
4f1844fa57
commit
8a91c7fb88
@ -1,5 +1,6 @@
|
||||
using OrmTest.Demo;
|
||||
using OrmTest.Models;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -16,6 +17,19 @@ namespace OrmTest.Demo
|
||||
{
|
||||
Where();
|
||||
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()
|
||||
|
@ -43,7 +43,7 @@ namespace OrmTest
|
||||
OrmTest.Demo.JoinSql.Init();
|
||||
OrmTest.Demo.Filter.Init();
|
||||
OrmTest.Demo.ComplexModel.Init();
|
||||
OrmTest.Demo.CodeFirst.Init();
|
||||
OrmTest.Demo.CodeFirst.Init();;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -410,6 +410,14 @@ namespace SqlSugar
|
||||
QueryBuilder.SelectValue = selectValue;
|
||||
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()
|
||||
{
|
||||
|
@ -62,7 +62,7 @@ namespace SqlSugar
|
||||
ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression);
|
||||
ISugarQueryable<TResult> Select<TResult>(string select);
|
||||
ISugarQueryable<T> Select(string select);
|
||||
|
||||
ISugarQueryable<T> SelectMergeAsTable();
|
||||
|
||||
int Count();
|
||||
TResult Max<TResult>(string maxField);
|
||||
|
Loading…
Reference in New Issue
Block a user