public override IAliasedExpression Visit(CaseExpression item) { if (item.CaseTests == null || item.CaseTests.Length == 0) { if (((Constant)item.DefaultResult).Value == null) return null; item.CaseTests = mapping.Mapper.TestCases((string)((Constant)item.DefaultResult).Value, item.Alias); } item = (CaseExpression)new ValueExpressionMutator(driver).Visit(item); return base.Visit(item); }
public virtual IAliasedExpression Update(CaseExpression item, Evaluant.NLinq.Expressions.Expression test, IDbExpression result, CaseTestExpression[] tests, TableAlias alias) { if (item.Test != test || item.DefaultResult != result || item.CaseTests != tests || item.Alias != alias) return new CaseExpression(alias, (IDbExpression)test, (IDbExpression)result, tests); return item; }