Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo se resuelven las funciones de Entity SQL.
Se puede definir más de una función con el mismo nombre, siempre que las funciones tengan firmas únicas.
Cuando este es el caso, se deben aplicar los criterios siguientes para determinar a qué función hace referencia una expresión determinada. Estos criterios se aplican en secuencia. El primer criterio que se aplica solo a una sola función es la función resuelta.
Número de parámetro. La función tiene el mismo número de parámetros especificados en la expresión.
Coincidencia exacta en el tipo. Cada tipo de argumento de la función coincide exactamente con el tipo de parámetro o es el literal null.
Coincidencia en el subtipo. Cada tipo de argumento de la función coincide exactamente o es un subtipo del tipo de parámetro o el argumento es el literal null. En caso de que varias funciones solo difieren en el número de conversiones de subtipo necesarias, la función con el menor número de conversiones de subtipo es la función resuelta.
Coincidencia en subtipo o promoción de tipos. Cada tipo de argumento de la función coincide exactamente, es un subtipo de o se puede promover al tipo de parámetro o el argumento es el literal null. De nuevo, en caso de que varias funciones solo difieren en el número de conversiones y promociones de subtipo, la función con el menor número de conversiones y promociones de subtipo es la función resuelta.
Si ninguno de estos criterios da como resultado que se seleccione una sola función, la expresión de invocación de función es ambigua.
Incluso si se puede extraer una sola función mediante estas reglas, es posible que los argumentos aún no coincidan con los parámetros. Se produce un error en este caso.
En el caso de las funciones definidas por el usuario, la definición de una función de consulta insertada tiene prioridad incluso cuando existe una función definida por el modelo con una firma que es una coincidencia mejor para la función definida por el usuario.