EF4 CTP5で返されたオブジェクトをシリアル化しようとすると循環参照に問題があります。私のモデルにはコードの最初のアプローチとシンプルなポコを使っています。MVC3とEF4を使用したJSONシリアライゼーションの循環参照例外CTP5w
オブジェクトへの逆参照を提供するプロパティに[ScriptIgnore]属性を追加しました.Pocoを手動でインスタンス化するとうまくいくように見えます。つまり、JSONの罰金にシリアル化され、scriptignore属性が認識されます。しかし、DALから返されたオブジェクトをシリアル化しようとすると循環参照例外が発生する "循環参照が型 'System.Data.Entity.DynamicProxies.xxxx'のオブジェクトを直列化している間に検出された"
私はいくつか試したデータをretreivingの方法は、それらはすべて、このエラーで立ち往生:
public JsonResult GetTimeSlot(int id) {
TimeSlotDao tsDao = new TimeSlotDao();
TimeSlot ts = tsDao.GetById(id);
return Json(ts);
}
以下の方法は、円形のrefferenceにその任命オブジェクトを起こし少し良いとしてではなく、タイムスロットの動的プロキシになるオブジェクト動作します。
この問題の解決策はありますか?私は、可能な場合nuget経由Json.Netは、私は私も意図したとおりにそれを使用するのが可能に望んでいるだろう代替としてokですが、箱のシリアライザのうちを使用することを好むだろう
更新 ...
場合、誰かが(ないベストプラクティス)「自動化」望んでいる余分なコードを必要としないこの問題の解決策、このQAをチェックアウト:[JSONで(ServiceStack.Textライブラリ)をEntity Frameworkのクラス参照をシリアライズしない](HTTP ://stackoverflow.com/questions/14998890/do-not-serialize-entity-framework-class-references-in-json-servicestack-text-li/15010306#15010306) – kape123