0

ここは私の状況です。私はWeb APIでEntity Framework 4を使用しますEntity Framework + Web API、DbContext外のエンティティ(複合、コレクションなど)を返します

私のコードの構造は非常に単純です。私はすべての残りのAPIが整理されたサービス層を持っています。私はトランザクションを管理するビジネスコントローラを持っています。残りの呼び出しとデータレイヤ。最後に、汎用のリポジトリとDAOを使用してすべてのデータにアクセスするデータ層があります。

私のビジネスコントローラでは、transactionnal(読み取り専用のメソッド)またはtransactional(CRUDのメソッド)DbContextを挿入するためにusingを使用します。

REST APIに値を返すときに、JSONに解析します。 Newtonsoft.Json.JsonSerializationException私は私のエンティティ/コレクション/リストに私はEFは、デフォルトでは好きではないと思います私の使用して、{}文、外を返す

問題は、私はこの例外を持っておくということです。

デバッグモードでは、すべてのデータを取得することがありますが、すべてではありません。私のエンティティはDbContext内のクエリから来ているので、コンテキストが破棄された後でロードされたサブプロパティを削除することがその動作だと私は考えています。

事実は、私があるように私の構造を維持したい、である、と私は次のことを思っていた:

使用して{}文を残した後(レイジーロードされていない)完全なエンティティを返す方法はありますか?

どうもありがとう

+0

usingステートメントの後にDBContextが閉じられているため、例外をスローせずに何も実行できません。 –

+0

JsonSerializationExceptionから詳細情報を取得していますか?たとえば、エンティティが互いに参照すると、直列化中に無限ループに陥る可能性がありますか? –

答えて

0

私は実際には、エンティティフレームワークの挙動についての詳細を読みます。私が得るのは実際にEFの標準です。私は、文脈を離れた後にそれらを得るために文脈をLoad()に強制しなければなりません。

関連する問題