2

Vici Coolstorage(asp.netバージョン)を中心にアプリを構築しています。クラスを作成してデータベーステーブルにマップし、すべてのレコードのリストを正常にプルできます。

Coolstorageでマップされていないデータベース間でクエリがジャンプするストアドプロシージャを作成しましたが、クエリ結果のフィールドはクラスの1つに直接マップされます。プロシージャは1つのパラメータを取ります。

だからここに2つの質問:

ストアドプロシージャを実行するにはどうすればよいですか?私はこれをやっています

CSParameterCollection collection = new CSParameterCollection();
collection.Add("@id", id);
var result = Vici.CoolStorage.CSDatabase.RunQuery("procedurename", collection);

「'procedurename'の近くの構文が正しくありません」という例外が発生します。(これは、プロシージャではなくテキストとして実行しようとしているためだと思いますか?)

また、テーブルを表すクラスは抽象として定義されているので、結果が汎用オブジェクトや動的オブジェクトなどのオブジェクトではなく、MyTableオブジェクトのリストを作成するように指定するにはどうすればよいですか?やってみたら

Vici.CoolStorage.CSDatabase.RunQuery<MyTable>(...)

コンパイラは、抽象クラスであると私に怒鳴ります。

4

1 に答える 1

2

CoolStorageには、ストアドプロシージャを実行するためのショートカットがあります。ストアドプロシージャ名の前に「!」を付けるだけです。

 CSDatabase.RunQuery("!procedurename", collection);
于 2010-03-18T22:00:44.440 に答える