序列化对象(实体框架)

由 Entity Data Model 生成器工具 (EdmGen.exe) 和 Entity Data Model 向导生成的实体类型应用了 SerializableAttributeDataContractAttribute。 这将允许使用二进制序列化、XML 序列化和 Windows Communication Foundation (WCF) 数据约定序列化对对象进行序列化。 有关更多信息,请参见 生成 N 层应用程序(实体框架)

在序列化和反序列化实体时需要考虑下列注意事项:

  • 当对实体进行序列化时,用户应考虑禁用延迟加载。 否则,将触发延迟加载,并且序列化的对象图包含的数据可能超过预期。 有关延迟加载的更多信息,请参见加载相关对象(实体框架)

  • 在对对象进行序列化时,EntityKey 对象也将序列化。

  • 使用二进制序列化和 WCF 数据约定序列化时,如果要序列化的对象在对象图中有相关对象,则这些相关对象也会进行序列化。 XML 序列化不序列化相关对象。

  • 仅对对象属性和关系信息进行序列化。 不对对象上下文中保留的对象状态信息进行序列化。 从 .NET Framework 版本 4 开始,自跟踪实体可以包含其自己的更改跟踪逻辑。 有关更多信息,请参见使用自跟踪实体

  • 对象在反序列化后处于 Detached 状态。 有关更多信息,请参见附加和分离对象(实体框架)

因为实体类型支持二进制序列化,因此对象在回发操作期间可以保存在 ASP.NET 应用程序的视图状态中。 需要时,可以从视图状态中检索对象及其相关对象,并将它们附加到现有对象上下文。 有关更多信息,请参见如何:向/自二进制流对对象进行序列化和反序列化(实体框架)

本节内容

如何:向/自二进制流对对象进行序列化和反序列化(实体框架)

演练:使用 WCF 序列化 POCO 代理(实体框架)

演练:序列化自跟踪实体(实体框架)

另请参见

任务

演练:序列化自跟踪实体(实体框架)

概念

使用对象(实体框架)