Я использую Npgsql 2.2.5 с EntityFramework первой 6.1.3 базы данных и расширенного контекста для вызова некоторых функций сервера один из них дает эту ошибку:npgsql не распознает тип параметра функции
«ОШИБКА: 42883: функция insert_chempair (целочисленный, неизвестный) не существует «
ErrorSql: выберите * from insert_chempair (((50066)), (('C1 (= O) C (c2ccccc2) (CC) C (= O) NC (= O) N1')))
С Код:
public int AddChemPair(int cas,string smilesstr)
{
return this.Database.SqlQuery<int>("select * from insert_chempair(@p0,@p1)",(object)cas,(object)smilesstr).First();
}
Googling предложил использовать типизированные параметры при I`ve изменен объект Params к типам NpgsqlParameter но EROR не сильно отличается:
BaseMessage «функция insert_chempair (целое число, текст) не существует» строки Использование SQLManagemnet студии i` m может выполнить функцию.
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;
$$;
Я делаю что-то неправильно.
Я нашел его (insert_chem_pair! = Insert_chempair) – danisius