mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-15 05:13:27 +08:00
-
This commit is contained in:
parent
493d1a414d
commit
e7b0271487
@ -3,10 +3,36 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using SqlSugar;
|
||||
using System.Linq.Expressions;
|
||||
using OrmTest.Models;
|
||||
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.Where(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,
|
||||
SelectMultiple=3,
|
||||
FieldSingle=4,
|
||||
FieldMultiple=5
|
||||
FieldMultiple=5,
|
||||
Join=6
|
||||
}
|
||||
}
|
||||
|
@ -91,16 +91,20 @@ namespace SqlSugar
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
protected void AppendValue(ExpressionParameter parameter, bool? isLeft, object value)
|
||||
{
|
||||
if (parameter.BaseExpression is BinaryExpression|| parameter.BaseExpression==null)
|
||||
if (parameter.BaseExpression is BinaryExpression || parameter.BaseExpression == null)
|
||||
{
|
||||
var otherExpression = isLeft == true ? parameter.BaseParameter.RightExpression : parameter.BaseParameter.LeftExpression;
|
||||
if (parameter.Expression is MethodCallExpression)
|
||||
|
@ -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\SqlBuilder\SqlServerBuilder.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\Queryable\SqlServerQueryable.cs" />
|
||||
<Compile Include="Databases\SqlServer\Sqlable\SqlServerSqlable.cs" />
|
||||
@ -122,6 +123,7 @@
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\LambdaExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\MemberExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\MethodCallExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\NewArrayExpessionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\NewExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\SimpleBinaryExpressionResolve.cs" />
|
||||
<Compile Include="ExpressionsToSql\ResolveItems\UnaryExpressionResolve.cs" />
|
||||
|
@ -103,7 +103,9 @@ namespace SqlSugar
|
||||
|
||||
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;
|
||||
}
|
||||
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);
|
||||
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;
|
||||
}
|
||||
@ -154,27 +155,27 @@ namespace SqlSugar
|
||||
{
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user