2015-03-30 1 views
0

de paramètre de fonction, je n'utilise Npgsql 2.2.5 avec EntityFramework 6.1.3 première base de données et le contexte étendu pour appeler des fonctions de serveur l'un d'eux donne cette erreur:Npgsql ne reconnaît le type

« ERREUR: 42883: Fonction insert_chempair (nombre entier, inconnue) n'existe pas »

ErrorSql: select * from insert_chempair (((50066)), (('C1 (= O) C (c2ccccc2) (CC) C (= O) NC (= O) N1')))

Avec le code:

  public int AddChemPair(int cas,string smilesstr) 
      { 

       return this.Database.SqlQuery<int>("select * from insert_chempair(@p0,@p1)",(object)cas,(object)smilesstr).First(); 
      } 

recherche sur Google a suggéré d'utiliser paremeters tapées objet params'ai changé aux types NpgsqlParameter mais le eror est pas très différent:

BaseMessage "fonction insert_chempair (entier, texte) n'existe pas" string aide studio SQLManagemnet I` m capable d'exécuter la fonction.

CREATE FUNCTION insert_chem_pair(new_cas integer,new_smiles text) RETURNS integer 
    LANGUAGE plpgsql STRICT 
AS $$ 
DECLARE new_id integer; 
DECLARE new_smiles_id integer; 
BEGIN 
    select * into new_smiles_id from insert_smiles(new_smiles); 
    select id into new_id from chempair where cas=new_cas and smiles_id=new_smiles_id; 
    if(new_id is NULL) then 
    insert into chempair(cas,smiles_id) values(new_cas,new_smiles_id) returning chempair.id into new_id; 
    end if; 
    RETURN new_id; 
END; 
$$; 

Je fais quelque chose de mal.

+0

Je l'ai trouvé (insert_chem_pair! = Insert_chempair) – danisius

Répondre

0

Le diable est dans les détails:

fonction est définie comme ce insert_chem_pair mais j'appelle insert_chempair

Il semble DST m'a affecté.