次のように定義された 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 メタデータの使用方法もわかりません。
私はこれに何日も苦労してきたので、どんな助けも大歓迎です。