12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Text;
- namespace SqlSugar
- {
- public class CoalesceResolveItems : MethodCallExpressionResolve
- {
- public CoalesceResolveItems(ExpressionParameter parameter) : base(parameter)
- {
- string name = "IsNull";
- var express = base.Expression as BinaryExpression;
- var args = new List<Expression>() {
- express.Left,
- express.Right
- };
- var isLeft = parameter.IsLeft;
- MethodCallExpressionModel model = new MethodCallExpressionModel();
- model.Args = new List<MethodCallExpressionArgs>();
- switch (this.Context.ResolveType)
- {
- case ResolveExpressType.WhereSingle:
- case ResolveExpressType.WhereMultiple:
- Check.Exception(name == "GetSelfAndAutoFill", "SqlFunc.GetSelfAndAutoFill can only be used in Select.");
- base.Where(parameter, isLeft, name, args, model);
- break;
- case ResolveExpressType.SelectSingle:
- case ResolveExpressType.SelectMultiple:
- case ResolveExpressType.Update:
- base.Select(parameter, isLeft, name, args, model);
- break;
- case ResolveExpressType.FieldSingle:
- case ResolveExpressType.FieldMultiple:
- base.Field(parameter, isLeft, name, args, model);
- break;
- default:
- break;
- }
- }
- }
- }
|