添加ExecuteUpdate和ExecuteDelete的支持

This commit is contained in:
xuejiaming 2022-11-09 13:10:24 +08:00
parent 32d4d79a53
commit da8e43685d
3 changed files with 38 additions and 0 deletions

View File

@ -28,6 +28,8 @@ namespace ShardingCore.Sharding.ShardingExecutors
private static readonly IQueryableCombine _constantQueryableCombine;
private static readonly IQueryableCombine _selectQueryableCombine;
private static readonly IQueryableCombine _whereQueryableCombine;
private static readonly IQueryableCombine _executeUpdateQueryableCombine;
private static readonly IQueryableCombine _executeDeleteQueryableCombine;
static QueryCompilerContextFactory()
{
@ -36,6 +38,8 @@ namespace ShardingCore.Sharding.ShardingExecutors
_constantQueryableCombine = new ConstantQueryableCombine();
_selectQueryableCombine = new SelectQueryableCombine();
_whereQueryableCombine = new WhereQueryableCombine();
_executeUpdateQueryableCombine = new ExecuteUpdateQueryableCombine();
_executeDeleteQueryableCombine = new ExecuteDeleteQueryableCombine();
}
public QueryCompilerContextFactory(IDataSourceRouteRuleEngineFactory dataSourceRouteRuleEngineFactory,ITableRouteRuleEngineFactory tableRouteRuleEngineFactory,ILogger<QueryCompilerContextFactory> logger)
@ -114,6 +118,10 @@ namespace ShardingCore.Sharding.ShardingExecutors
case nameof(Queryable.LongCount):
case nameof(Queryable.Any):
return _whereQueryableCombine;
case "ExecuteUpdate":
return _executeUpdateQueryableCombine;
case "ExecuteDelete":
return _executeDeleteQueryableCombine;
case nameof(Queryable.All):
return _allQueryableCombine;
case nameof(Queryable.Max):

View File

@ -0,0 +1,15 @@
using System.Linq;
using System.Linq.Expressions;
using ShardingCore.Sharding.ShardingExecutors.Abstractions;
namespace ShardingCore.Sharding.ShardingExecutors.QueryableCombines
{
public class ExecuteDeleteQueryableCombine: AbstractQueryableCombine
{
public override IQueryable DoCombineQueryable(IQueryable queryable, Expression secondExpression,
IQueryCompilerContext queryCompilerContext)
{
return queryable;
}
}
}

View File

@ -0,0 +1,15 @@
using System.Linq;
using System.Linq.Expressions;
using ShardingCore.Sharding.ShardingExecutors.Abstractions;
namespace ShardingCore.Sharding.ShardingExecutors.QueryableCombines
{
public class ExecuteUpdateQueryableCombine: AbstractQueryableCombine
{
public override IQueryable DoCombineQueryable(IQueryable queryable, Expression secondExpression,
IQueryCompilerContext queryCompilerContext)
{
return queryable;
}
}
}