1

私はSilverlightアプリケーションを開発中です。 WCFサービスを使用して、EF 4セルフトラッキングエンティティをクライアントからサーバーに渡します。
Readメソッドは、TrackableエンティティコレクションをWCFサービスからSilverlightクライアントに提供するために正常に動作しています。基本的なアップデートも正しく動作しています。私は "OfficeEntity"のプロパティを変更し、WCF更新メソッドにパラメータとして渡すことができます。 エンティティのコレクションの1つを更新するときに発生する問題は、以下の逆シリアル化エラーが発生します。たとえば、「OfficeEntity」に「LocationEntity」のコレクションである「Locations」というナビゲーションプロパティがあり、「Locations」プロパティに新しい「Location」を追加して保存すると、非直列化例外が発生します。WCF、Silverlight 5、セルフトラッキングエンティティ、およびシリアライザ

officeEntity.Locations.Add(新しい場所(){LocationName = "テスト1"});

client.SaveAsync(officeEntity);

例外の詳細:メッセージをデシリアライズしようとしているときに

フォーマッタが例外をスローしました: パラメータデシリアライズしようとしているときにエラーが発生しました:OfficeEntityを。 InnerException>メッセージが 'Entities.OfficeEntity型のオブジェクトを逆シリアル化する際にエラーが発生しました。 終了要素 'ObjectsAddedToCollectionProperties' from namespace> 'http://schemas.datacontract.org/2004/07/Entities'が必要です。 名前空間から 'b:AddedObjectsForProperty'が見つかりました。> 'http://schemas.datacontract.org/2004/07/Entities'。 '

変更トラッキングのプロパティをデシリアライズすると問題が発生するようです。これを引き起こす原因に関するアイデア、または私がそれを修正できる場所?実際に生成されたエンティティはクライアントで使用されていない場合

おかげで、 ジェイソン

+0

あなたがサービス参照を追加使用してSilverlightのプロキシを作成しましたを使用することができることに影響を与えることになる場合

わかりませんか? –

+0

はい。プロキシは「サービス参照の追加」によって生成されました。 – IUJPJ

答えて

0

自己追跡エンティティは、追跡に問題を持っている - 私はそれhereについてブログ。これはあなたのシリアル化の問題の根本にあるが、間違いなくあなたは、自己追跡エンティティ

+0

リチャードありがとう。あなたが提供したリンクはうまくいかないようです。エンティティはSilverlightクラスライブラリにあり、SilverlightクライアントプロジェクトとWCF Webプロジェクトの両方によって参照されます。参照されたアセンブリの型を再利用するように指定されたサービス参照が追加されました。 – IUJPJ

+0

リンクを修正しましたが、問題を回避するように設定したかのように聞こえます。reference.csを確認するだけの価値があります –

関連する問題