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.
Je l'ai trouvé (insert_chem_pair! = Insert_chempair) – danisius