我首先使用Npgsql 2.2.5和EntityFramework 6.1.3数据库以及扩展上下文来调用一些服务器函数,其中一个给出了这个错误:
“错误:42883:函数insert_chempair(整数,未知)不存在”
ErrorSql: select * 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();
}
谷歌搜索建议使用类型化的参数我已经将对象参数更改为NpgsqlParameter类型但是错误没有太大区别:
BaseMessage“函数insert_chempair(整数,文本)不存在”字符串 使用SQLManagemnet studio我可以执行该功能。
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;
$$;
我做错了什么。
答案 0 :(得分:0)
魔鬼详细说明:
功能定义如下insert_chem_pair
但我打电话
insert_chempair
看来DST影响了我。