0

オンプレミスの SAAS アプリケーションを Windows azure に移行しようとしていますが、具体的にはモジュール用に多くの Entity Framework を使用しています。移行の一環として、段階的にアプリケーションを移行してテストしようとしています。Azure appfabric キャッシュ サービスをセッション状態プロバイダーとして使用しようとしています。

セッション状態を appfabric キャッシュに構成しようとすると、エンティティ フレームワークに関連するこれらの問題が発生しています。エラー 2 を参照してください。最初にこのエラー 1 が発生しました。この問題を修正するために、[DataContract] としてクラスを設定し、問題は解決しました。

エラー番号 1. System.Runtime.Serialization.InvalidDataContractException: タイプ 'XX.XX.XXX' をシリアル化できません。これを DataContractAttribute 属性でマークし、シリアル化するすべてのメンバーを DataMemberAttribute 属性でマークすることを検討してください。型がコレクションの場合は、CollectionDataContractAttribute でマークすることを検討してください。サポートされているその他の型については、Microsoft .NET Framework のドキュメントを参照してください。

エラー番号 2。コレクションが既に EntityCollection に設定されているため、タイプ 'CaXXXXX_9FDDBE5B2C99F9C5DE2E0DCD2E8CC77D2CB59220D1A3413E91AF5A2B6A23026D' のプロパティ 'AdXXXXXX' を設定できません。

これらの問題を修正する方法が完全にわかりません。ググると、いくつかのスレッドが、プロパティの仮想アクセス修飾子を削除する必要があることを示しています。ただし、オンプレミスでは同じコードが問題なく機能し、モデルが更新されるたびに EF によってコードが自動的に生成されます。2 回目のチャンスでは、セッション状態プロバイダーとして SQLAzure に行くという他のオプションもありますが、セッションに格納するときにデータをシリアル化する必要があるため、同じ問題が存在する可能性があることも期待しています。

http://social.msdn.microsoft.com/forums/en/adonetefx/thread/99d8d4a1-5ab1-42dc-b9db-5087be02162d https://blog.iannelson.uk/entity-framework-week-part-3-runtime -issues-encounted/

遅延読み込みは使用しておらず、データベースからモデルを更新するとクラスが EF によって自動的に生成されます。

4

1 に答える 1

0

遅延読み込み/ナビゲーション プロパティに使用するものを除くすべてのプロパティからvirtualキーワードを削除してみてください(つまり、すべてのネイティブ タイプから削除してください)。

参照: Code First はコレクションに追加しますか? リポジトリで Code First を使用する方法は?

于 2012-04-13T10:44:38.307 に答える