WCF経由のナビゲーションプロパティを持つEntity Frameworkで生成されたエンティティを送信するときに問題が発生します。WCFでEntity Frameworkエンティティを送信する:ナビゲーションフィールドのシリアル化を防ぐ方法
Stock : Id, Symbol, CompanyName, ExchangeName
Option: Id, StockId, OptionType, Strike
私はこのデータベースのEntity Frameworkのモデルを作成しました:私は、その内部の財務データと2つのテーブルを格納するためのSecurities
のデータベースを持っています。次に、生成されたStock
とOption
EFエンティティをクライアントに公開するWCFサービスを作成しました。
私の生成したエンティティStock
のナビゲーションプロパティはEntityCollection<Option> Options
です。 Stock
エンティティをWCFサービスからクライアントに返すときに、SerializationException
が表示されます。データベース接続が既に閉じられているため、WCFはOptions
ナビゲーションプロパティをシリアル化できません。
Options
プロパティを入力するためにデータベース接続を開いたときにOptions.Load()
メソッドを呼び出すことができますが、Stock
エンティティのフルオブジェクトグラフをロードしない場合はどうすればよいですか?
エンティティはコードレイヤーのPOCOであっても、サービスレイヤーではありません.EFはそれらを変更します。道を邪魔しないようにして、あなたのサービス層に別のモデル/ DTOを作成してください。 – jrummell