2.2.3.6.1.1.6 Numeric Promotions for Method Call Parameters

A data service MAY support numeric promotions for method call parameters.

If supported, a data service SHOULD support binary numeric promotions for the following Entity Data Model (EDM) primitive types:

  • Edm.Decimal

  • Edm.Double

  • Edm.Single

  • Edm.Byte

  • Edm.Int16

  • Edm.Int32

  • Edm.Int64

If supported, numeric promotions for method parameters SHOULD consist of the application of the following rules in the order specified:

  • If either operand is of type Edm.Double, the other operand is converted to type Edm.Double.

  • Otherwise, if either operand is of type Edm.Single, the other operand is converted to type Edm.Single.

  • Otherwise, if either operand is of type Edm.Decimal, the other operand is converted to type Edm.Decimal.

  • Otherwise, if either operand is of type Edm.Int64, the other operand is converted to type Edm.Int64.

  • Otherwise, if either operand is of type Edm.Int32, the other operand is converted to type Edm.Int32

  • Otherwise, if either operand is of type Edm.Int16, the other operand is converted to type Edm.Int16.

  • If binary numeric promotion is supported, a data service SHOULD use a castExpression to promote an operand to the target type.