オブジェクトのシリアル化 (Entity Framework)

Entity Data Model ジェネレーター ツール (EdmGen.exe) および Entity Data Model ウィザードによって生成されたエンティティ型には、SerializableAttribute および DataContractAttribute が適用されます。 そのため、バイナリ シリアル化、XML シリアル化、および Windows Communication Foundation (WCF) データ コントラクト シリアル化を使用して、オブジェクトをシリアル化できます。 詳細については、「N 層アプリケーションのビルド (Entity Framework)」を参照してください。

エンティティのシリアル化および逆シリアル化を行うときは、次の点を考慮してください。

  • エンティティをシリアル化する際には、遅延読み込みを無効にすることを検討してください。 そうしないと、遅延読み込みが起動され、シリアル化されたオブジェクト グラフに想定以上のデータが格納されることがあります。 遅延読み込みの詳細については、「関連オブジェクトの読み込み (Entity Framework)」を参照してください。

  • オブジェクトをシリアル化すると、EntityKey オブジェクトもシリアル化されます。

  • バイナリ シリアル化と WCF データ コントラクト シリアル化を使用する場合に、シリアル化するオブジェクトのオブジェクト グラフに関連オブジェクトがあると、これらのオブジェクトもシリアル化されます。 XML シリアル化では、関連オブジェクトはシリアル化されません。

  • オブジェクトのプロパティとリレーションシップ情報だけがシリアル化されます。 オブジェクト コンテキストで維持されているオブジェクトの状態情報はシリアル化されません。 .NET Framework バージョン 4 から、自己追跡エンティティで独自の変更追跡ロジックを利用できるようになりました。 詳細については、「自己追跡エンティティの使用」を参照してください。

  • オブジェクトが逆シリアル化された後、オブジェクトは Detached 状態になります。 詳細については、「オブジェクトのアタッチとデタッチ (Entity Framework)」を参照してください。

エンティティ型はバイナリ シリアル化をサポートするので、ポストバック操作中に ASP.NET アプリケーションのビュー ステートでオブジェクトを保存できます。 必要な場合は、オブジェクトおよびその関連オブジェクトがビュー ステートから取得され、既存のオブジェクト コンテキストにアタッチされます。 詳細については、「方法 : オブジェクトのバイナリ ストリーム間でのシリアル化およびシリアル化解除 (Entity Framework)」を参照してください。

このセクションの内容

方法 : オブジェクトのバイナリ ストリーム間でのシリアル化およびシリアル化解除 (Entity Framework)

チュートリアル: WCF による POCO プロキシのシリアル化 (Entity Framework)

チュートリアル: 自己追跡エンティティのシリアル化 (Entity Framework)

参照

処理手順

チュートリアル: 自己追跡エンティティのシリアル化 (Entity Framework)

概念

オブジェクトの使用 (Entity Framework)