Remotion.Linq.SqlBackend.SqlStatementModel.SqlSpecificExpressions.SqlCaseExpression.SqlCaseExpression C# (CSharp) Méthode

SqlCaseExpression() public méthode

public SqlCaseExpression ( Type type, IEnumerable cases, Expression elseCase ) : System
type System.Type
cases IEnumerable
elseCase System.Linq.Expressions.Expression
Résultat System
    public SqlCaseExpression (Type type, IEnumerable<CaseWhenPair> cases, Expression elseCase)
      : base (ArgumentUtility.CheckNotNull ("type", type))
    {
      ArgumentUtility.CheckNotNull ("cases", cases);

      if (elseCase == null && type.IsValueType && Nullable.GetUnderlyingType (type) == null)
        throw new ArgumentException ("When no ELSE case is given, the expression's result type must be nullable.", "type");

      var casesArray = cases.ToArray();
      if (casesArray.Any (c => !type.IsAssignableFrom (c.Then.Type)))
        throw new ArgumentException ("The THEN expressions' types must match the expression type.", "cases");

      if (elseCase != null && !type.IsAssignableFrom (elseCase.Type))
        throw new ArgumentException ("The ELSE expression's type must match the expression type.", "elseCase");

      _cases = Array.AsReadOnly (casesArray);
      _elseCase = elseCase;
    }