npgsql 无法识别函数参数类型

npgsql does not recognize function parameter type

我首先使用带有 EntityFramework6.1.3 数据库的 Npgsql 2.2.5 和扩展上下文来调用一些服务器函数,其中一个给出了这个错误:

"ERROR: 42883: function insert_chempair(integer, unknown) does not exist"

ErrorSql: select * 来自 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 "function insert_chempair(integer, text) does not exist" 字符串 使用 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;
$$;

我是不是做错了什么。

魔鬼在细节:

函数定义如下insert_chem_pair 但我打电话 insert_chempair

看来夏令时影响了我。