【发布时间】:2015-05-21 08:11:58
【问题描述】:
(PostgreSQL 9.1,Telerik OpenAccess v2.0.50727,PgAdmin III)。
我很难从 (Telerik) 实体框架调用存储过程。确切的错误是:
NpgsqlException 未被用户代码处理。
错误:42703:“cpatient”列不存在。
Telerik 模板调用是:
public int SaveDx(string cpatient, Object o, Object n)
{
OAParameter parameterCpatient = new OAParameter();
parameterCpatient.ParameterName = "cpatient";
parameterCpatient.Size = -1;
if(cpatient != null)
{
parameterCpatient.Value = cpatient;
}
else
{
parameterCpatient.DbType = DbType.String;
parameterCpatient.Value = DBNull.Value;
}
OAParameter parameterO = new OAParameter();
parameterO.ParameterName = "o";
parameterO.Value = o;
OAParameter parameterN = new OAParameter();
parameterN.ParameterName = "n";
parameterN.Value = n;
int queryResult = this.ExecuteNonQuery("SELECT * FROM \"public\".\"g_savedx\"(cpatient, o, n)", CommandType.Text, parameterCpatient, parameterO, parameterN);
return queryResult;
}
ExecuteNonQuery 语句生成错误的位置。 PostgreSQL存储过程是:
FUNCTION g_savedx(cpatient character varying, o view_dx, n view_dx)
RETURNS void AS ...
postgreSQL 函数已经过测试,可以在 pgAdmin 中正常工作。
那么“cpatient”列是从哪里来的??我做错了什么?
TIA
【问题讨论】:
标签: entity-framework postgresql stored-procedures telerik