0

で WCF DataService の接続文字列をオーバーライドしようとしていますCreateDataSource。これは、テーブルの単純な要求ではうまくいくようですが、ストアド プロシージャを使用しようとすると失敗します... .edmx ファイルを操作するときに、SP 用に設定された元のデータソースを常に使用しようとします。

私のコードは次のとおりです。

string mConnectionString; 
mConnectionString = ConfgurationManager.ConnectionStrings["D7SG_DEVEntities"].ConnectionString;
return new SGEntities(mConnectionString);`

発生するエラーは

指定された名前付き接続が構成内に見つからないか、EntityClient プロバイダーでの使用が意図されていないか、無効です。

ストアドプロシージャでこれを機能させる方法を知っている人はいますか? (この手順は、ハードコードされた文字列で使用すると正常に機能しますweb.config)

4

1 に答える 1

1

サービス操作では、変更された接続文字列を渡さずに SGEntities を作成しています。したがって、構成からデフォルトの接続文字列が選択されます。これを機能させるには、サービス操作の実装で SGEntities の新しいインスタンスを作成する代わりに、this.CurrentDataSource を使用できます。これは CreateDataSource を通過し、新しい接続文字列を取得する必要があります。

于 2012-08-14T07:57:51.437 に答える