2012-04-13 4 views
0

オンプレミスのSAASアプリケーションをWindows Azureに移行しようとしており、モジュール用に多くのEntity Frameworkを使用しています。移行の段階では、アプリケーションを段階的に移行してテストしようとしています。我々は、セッション状態プロバイダとしてAzure appfabricキャッシュサービスを使用しようとしています。Azure Appfabric Cacheサービスをセッション状態プロバイダとして使用すると、EF動的プロキシが発生する

セッション状態をappfabricキャッシュに設定しようとすると、エンティティフレームワークに関連するこれらの問題が実行されています.plsはエラー番号2を参照しています。まず、このエラー番号1を取得しました。 [DataContract]問題が解決しました。

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

エラーなし2. プロパティタイプの「AdXXXXXXは」「CaXXXXX_9FDDBE5B2C99F9C5DE2E0DCD2E8CC77D2CB59220D1A3413E91AF5A2B6A23026D」を設定することはできません。

これらの問題を解決する方法は完全に失われています。グーグルでは、いくつかのスレッドがプロパティの仮想アクセス修飾子を削除する必要があることを伝えます。しかし、同じコードでは、このような前提のような問題は解決されず、コードはモデルの各更新時にEFによって自動的に生成されます。 2番目のチャンスでセッション状態プロバイダとしてSQLAzureに進むという選択肢もありますが、セッションに格納するときにデータを直列化する必要があるため、同じ問題が存在することを期待しています。

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

私たちは、遅延ロードを使用していないと私たちは、データベースからモデルを更新するときのクラスが自動的にEFによって生成されます。

答えて

0

仮想キーワードを、遅延読み込み/ナビゲーションのプロパティ(つまり、すべてのネイティブタイプから削除します)以外のすべてのプロパティから削除できますか?

参考:Code First adding to collections? How to use Code First with repositories?

+0

私たちは、遅延ロードを使用していないと私たちは、データベースからモデルを更新するときのクラスが自動的にEFによって生成されます。私たちは、EFによって生成されたクラスには何のコントロールもありません。または仮想プロパティを手動で削除する必要がありますか。 – CSKR

+0

いいえ、仮想キーワードを手動で削除しません。変更トラッキングを無効にしようとしてください:context.SomeTable.MergeOption = MergeOption.NoTracking; –

+0

テーブルにMergeOption.NoTrackingオプションを追加することはできますが、基本的にはpropetiesを追加してみましたが、同じ問題が発生しました。 – CSKR

関連する問題