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() { express.Left, express.Right }; var isLeft = parameter.IsLeft; MethodCallExpressionModel model = new MethodCallExpressionModel(); model.Args = new List(); 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; } } } }