mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-15 14:04:44 +08:00
-
This commit is contained in:
parent
493d1a414d
commit
e7b0271487
@ -3,10 +3,36 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using SqlSugar;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using OrmTest.Models;
|
||||||
namespace OrmTest.ExpressionTest
|
namespace OrmTest.ExpressionTest
|
||||||
{
|
{
|
||||||
public class Join
|
public class Join : ExpTestBase
|
||||||
{
|
{
|
||||||
|
private Join() { }
|
||||||
|
public Join(int eachCount)
|
||||||
|
{
|
||||||
|
this.Count = eachCount;
|
||||||
|
}
|
||||||
|
internal void Init()
|
||||||
|
{
|
||||||
|
base.Begin();
|
||||||
|
for (int i = 0; i < base.Count; i++)
|
||||||
|
{
|
||||||
|
Q2();
|
||||||
|
}
|
||||||
|
base.End("Method Test");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Q2()
|
||||||
|
{
|
||||||
|
ExpressionContext contet = new ExpressionContext();
|
||||||
|
SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString="x" ,DbType= DbType.SqlServer });
|
||||||
|
db.Queryable<Student, School>((st,sc)=> new object[] {
|
||||||
|
JoinType.Left,st.SchoolId==sc.Id
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ namespace OrmTest
|
|||||||
new OrmTest.ExpressionTest.Field(eachCount).Init();
|
new OrmTest.ExpressionTest.Field(eachCount).Init();
|
||||||
new OrmTest.ExpressionTest.Where(eachCount).Init();
|
new OrmTest.ExpressionTest.Where(eachCount).Init();
|
||||||
new OrmTest.ExpressionTest.Method(eachCount).Init();
|
new OrmTest.ExpressionTest.Method(eachCount).Init();
|
||||||
|
new OrmTest.ExpressionTest.Join(eachCount).Init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SqlSugar
|
||||||
|
{
|
||||||
|
public class SqlServerLambadaQueryBuilder: LambadaQueryBuilder
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -11,6 +11,7 @@ namespace SqlSugar
|
|||||||
SelectSingle=2,
|
SelectSingle=2,
|
||||||
SelectMultiple=3,
|
SelectMultiple=3,
|
||||||
FieldSingle=4,
|
FieldSingle=4,
|
||||||
FieldMultiple=5
|
FieldMultiple=5,
|
||||||
|
Join=6
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,9 +91,13 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return new NewExpressionResolve(parameter);
|
return new NewExpressionResolve(parameter);
|
||||||
}
|
}
|
||||||
else if (expression != null && expression.NodeType.IsIn(ExpressionType.NewArrayBounds, ExpressionType.NewArrayInit))
|
else if (expression is NewArrayExpression)
|
||||||
{
|
{
|
||||||
Check.ThrowNotSupportedException("ExpressionType.NewArrayBounds and ExpressionType.NewArrayInit");
|
return new NewArrayExpessionResolve(parameter);
|
||||||
|
}
|
||||||
|
else if (expression != null && expression.NodeType.IsIn(ExpressionType.NewArrayBounds))
|
||||||
|
{
|
||||||
|
Check.ThrowNotSupportedException("ExpressionType.NewArrayBounds");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SqlSugar
|
||||||
|
{
|
||||||
|
public class NewArrayExpessionResolve : BaseResolve
|
||||||
|
{
|
||||||
|
public NewArrayExpessionResolve(ExpressionParameter parameter) : base(parameter)
|
||||||
|
{
|
||||||
|
var expression = (NewArrayExpression)base.Expression;
|
||||||
|
switch (base.Context.ResolveType)
|
||||||
|
{
|
||||||
|
case ResolveExpressType.WhereSingle:
|
||||||
|
case ResolveExpressType.WhereMultiple:
|
||||||
|
case ResolveExpressType.SelectSingle:
|
||||||
|
case ResolveExpressType.SelectMultiple:
|
||||||
|
case ResolveExpressType.FieldSingle:
|
||||||
|
case ResolveExpressType.FieldMultiple:
|
||||||
|
Check.ThrowNotSupportedException("NewArrayExpression");
|
||||||
|
break;
|
||||||
|
case ResolveExpressType.Join:
|
||||||
|
base.Context.ResolveType = ResolveExpressType.WhereMultiple;
|
||||||
|
foreach (var item in expression.Expressions)
|
||||||
|
{
|
||||||
|
var value = ((ConstantExpression)item).Value;
|
||||||
|
var isJoinType = value is JoinType;
|
||||||
|
//string value = "";
|
||||||
|
//base.AppendValue();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -82,6 +82,7 @@
|
|||||||
<Compile Include="Databases\SqlServer\Db\DbFirst\SqlServerDbFirst.cs" />
|
<Compile Include="Databases\SqlServer\Db\DbFirst\SqlServerDbFirst.cs" />
|
||||||
<Compile Include="Databases\SqlServer\Db\SqlBuilder\SqlServerBuilder.cs" />
|
<Compile Include="Databases\SqlServer\Db\SqlBuilder\SqlServerBuilder.cs" />
|
||||||
<Compile Include="Databases\SqlServer\Db\SqlBuilder\SqlServerDbMaintenance.cs" />
|
<Compile Include="Databases\SqlServer\Db\SqlBuilder\SqlServerDbMaintenance.cs" />
|
||||||
|
<Compile Include="Databases\SqlServer\Db\SqlBuilder\SqlServerLambadaQueryBuilder.cs" />
|
||||||
<Compile Include="Databases\SqlServer\Db\SqlServerDb.cs" />
|
<Compile Include="Databases\SqlServer\Db\SqlServerDb.cs" />
|
||||||
<Compile Include="Databases\SqlServer\Queryable\SqlServerQueryable.cs" />
|
<Compile Include="Databases\SqlServer\Queryable\SqlServerQueryable.cs" />
|
||||||
<Compile Include="Databases\SqlServer\Sqlable\SqlServerSqlable.cs" />
|
<Compile Include="Databases\SqlServer\Sqlable\SqlServerSqlable.cs" />
|
||||||
@ -122,6 +123,7 @@
|
|||||||
<Compile Include="ExpressionsToSql\ResolveItems\LambdaExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\LambdaExpressionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\MemberExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\MemberExpressionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\MethodCallExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\MethodCallExpressionResolve.cs" />
|
||||||
|
<Compile Include="ExpressionsToSql\ResolveItems\NewArrayExpessionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\NewExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\NewExpressionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\SimpleBinaryExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\SimpleBinaryExpressionResolve.cs" />
|
||||||
<Compile Include="ExpressionsToSql\ResolveItems\UnaryExpressionResolve.cs" />
|
<Compile Include="ExpressionsToSql\ResolveItems\UnaryExpressionResolve.cs" />
|
||||||
|
@ -103,7 +103,9 @@ namespace SqlSugar
|
|||||||
|
|
||||||
protected List<JoinQueryInfo> GetJoinInfos(Expression joinExpression, SqlSugarClient context)
|
protected List<JoinQueryInfo> GetJoinInfos(Expression joinExpression, SqlSugarClient context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
ExpressionContext exp = new ExpressionContext();
|
||||||
|
exp.Resolve(joinExpression, ResolveExpressType.Join);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,12 +141,13 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return (ISugarQueryable<T>)_Queryable;
|
return (ISugarQueryable<T>)_Queryable;
|
||||||
}
|
}
|
||||||
public virtual List<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>();
|
||||||
SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression,this);
|
SqlBuilder.LambadaQueryBuilder.JoinQueryInfos = base.GetJoinInfos(joinExpression,this);
|
||||||
return null;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3>(Func<T, T2,T3, object[]> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3>(Func<T, T2,T3, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -154,27 +155,27 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3, T4, T5>(Func<T, T2, T3, T4,T5, object[]> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5>(Func<T, T2, T3, T4,T5, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3, T4, T5, T6>(Func<T, T2, T3, T4, T5,T6, object[]> joinExpression) where T : class, new()
|
public virtual ISugarQueryable<T> Queryable<T, T2, T3, T4, T5, T6>(Func<T, T2, T3, T4, T5,T6, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3, T4, T5, T6, T7>(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>(Func<T, T2, T3, T4, T5, T6,T7, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8>(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>(Func<T, T2, T3, T4, T5, T6,T7,T8, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9>(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>(Func<T, T2, T3, T4, T5, T6, T7, T8,T9, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public virtual List<T> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>(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>(Func<T, T2, T3, T4, T5, T6, T7, T8,T10, object[]> joinExpression) where T : class, new()
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user