Megosztás a következőn keresztül:


Függvény túlterhelésének feloldás (entity SQL)

Ez a témakör az Entity SQL-függvények megoldását ismerteti.

Több függvény is definiálható ugyanazzal a névvel, amennyiben a függvények egyedi aláírással rendelkeznek.

Ebben az esetben a következő feltételeket kell alkalmazni annak meghatározásához, hogy egy adott kifejezés melyik függvényre hivatkozik. Ezeket a feltételeket egymás után alkalmazza a rendszer. Az első feltétel, amely csak egyetlen függvényre vonatkozik, a feloldott függvény.

  1. Paraméterszám. A függvényben azonos számú paraméter van megadva a kifejezésben.

  2. Pontos egyezés típus szerint. A függvény minden argumentumtípusa pontosan egyezik a paraméter típusával, vagy a null literál.

  3. Egyezés az altípuson. A függvény minden argumentumtípusa pontosan egyezik, vagy a paramétertípus altípusa, vagy az argumentum a null literál. Abban az esetben, ha több függvény csak a szükséges altípus-átalakítások számában különbözik, a legkisebb altípusú átalakítással rendelkező függvény a feloldott függvény.

  4. Egyeztetés altípuson vagy típus-előléptetésen. A függvény minden argumentumtípusa pontosan egyezik, a paramétertípus altípusa vagy előléptethető, vagy az argumentum a null literál. Abban az esetben is, ha több függvény csak az altípusú konverziók és előléptetések számában különbözik, akkor a legkisebb számú altípusú konverziót és előléptetést tartalmazó függvény a feloldott függvény.

Ha ezen feltételek egyike sem eredményez egyetlen függvény kiválasztását, a függvényhívási kifejezés nem egyértelmű.

Még ha egyetlen függvény is kinyerhető ezekkel a szabályokkal, előfordulhat, hogy az argumentumok nem egyeznek a paraméterekkel. Ebben az esetben hiba merül fel.

Felhasználó által definiált függvények esetén a beágyazott lekérdezési függvények definíciója akkor is elsőbbséget élvez, ha egy modell által definiált függvény olyan aláírással rendelkezik, amely jobb egyezés a felhasználó által definiált függvényhez.

Lásd még