動作する WCF サービスがありますが、標準の ADO.net を使用していくつかのストアド プロシージャを呼び出します。
これは、呼び出したストアド プロシージャを DataContracts にマップし、手動で作成してから JSON として返す必要があるため、維持するのが少し面倒で面倒です。
EntityFramework エンティティを返すように WCF サービスを変換したい (そのため、手動でデータ コントラクトのマッピングと作成を続ける必要はありません)。
私のメソッドには次のようなものがあります。
public List<GetStuff_Result> GetStuff(string param1)
{
...
StuffEntities ctx = new DataContracts.StuffEntities();
List<GetStuff_Result> list = ctx.GetStuff(5463, "test").ToList();
return list;
}
GetStuff_Result を返すように edmx モデルにストアド プロシージャをセットアップしました (ストアド プロシージャをインポートし、「複合関数の作成」を使用しました)。
これをデバッグしたところ、リストに 2 つの結果が表示されましたが、ブラウザー経由で WCF メソッドが呼び出されると、ブラウザー (クロム) にメッセージが表示されます。
No data received
Unable to load the web page because the server sent no data.
Here are some suggestions:
Reload this web page later.
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
これを修正する方法、または少なくともなぜそれが起こっているのか誰か教えてもらえますか?
注 (1): edmx ファイルを右クリックし、遅延読み込みを無効にしました。
注 (2): DbContext ジェネレーターをセットアップしました
注 (3): WebMessageFormat.Json の応答形式を使用します。
ありがとう