我在 PostgreSQL 中有一个存储过程,定义为:
CREATE OR REPLACE FUNCTION g_changename(oldname character varying, newname character varying)
RETURNS integer AS
$BODY$
declare
k integer :=0;
begin
UPDATE test SET name = $2 WHERE name = $1;
GET DIAGNOSTICS k = ROW_COUNT;
return k;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION g_changename(character varying, character varying)
OWNER TO postgres;
存储过程正确测试以返回更新的记录数
Select g_changename('a','b');
在 PgAdmin 中执行。当调用 Telerik DataAccess 从数据库更新域时,它会将其编译为:
[MappedFunctionAttribute(Name="\"public\".\"g_changename\"", IsDeterministic=false, Backend=Backend.PostgreSql)]
public static Int32 ChangeName(string oldname, string newname)
{
throw new NotImplementedException();
}
从我读过的所有内容来看,这似乎是合适的。但是,您将如何编写一个方法来调用它?
这失败了,因为它调用了未实现的静态过程:
public int ChangeName(string OldName, string NewName)
{
var x = Nova.Data.Data.ChangeName(OldName, NewName);
return x;
}
而且我也不知道如何使用“MappedFunctionAttribute”所指的 Telerik 元数据。
任何帮助将不胜感激,因为我已经为此苦苦挣扎了好几天。