2013-02-22 8 views
14

いくつかの複合型を含むEFコードの最初のモデルがあります。 Web APIコントローラーの生成は問題なく動作しますが、http://blogs.msdn.com/b/yaohuang1/archive/2012/08/15/introducing-the-asp-net-web-api-help-page-preview.aspxに記載されているようにWeb APIヘルプ・ページを生成すると、サンプルは生成されません。指定されたエラーメッセージは次のとおりです。エンティティフレームワークを使用している場合、サンプルはWeb APIヘルプページでは機能しませんモデルの複合型

フォーマッタ 'JsonMediaTypeFormatter'を使用してメディアタイプ 'application/json'のサンプルを生成する際に例外が発生しました。例外メッセージ:1つ以上のエラーが発生しました。

他のメディアタイプでも同じことが起こります。複雑な型やシリアライゼーションで問題があったことは分かっていますが、Web APIにJson.NETフォーマッタがデフォルトで含まれていたときに解決されました。

関連性がありますか?誰もが同じ問題を抱えていますか?何か案は?

答えて

32

これはおそらく、モデルにある参照ループが原因であると思います。たとえば、Jsonフォーマッタを次のように変更してヘルプページを生成してみてください。サンプルが生成されるのを確認する必要があります。上記の設定を行わないと、実行時にも同様のエラーが表示されるはずです。

XmlFormatterおよび自己参照ループでは、hereを参照できます。

+0

あなたは、まさに正しいものでした。ちょうど参照元のループを持つすべてのモデルも複雑な型を持っていました。どうもありがとうございます! – kkara

+3

これをWebApiConfig.csに挿入します。 – bbodenmiller

+2

これを行うときに私はまだ奇妙な$ refと$ idタグを取得していました。私はより良い方法を見つけました:子供の参照のgetを親として内部に設定します。出典:http://truncatedcodr.wordpress.com/2012/09/10/entity-framework-circular-references/ – WiteCastle

関連する問題