Web 服务和实体数据模型(应用程序方案)

实体数据模型 (EDM) 在数据源上提供抽象概念层。对象服务将概念层中定义的实体具体化为可以在客户端应用程序(如 Windows 窗体应用程序和 ASP.NET 应用程序)中使用的 CLR 对象。实体框架 可将实体对象序列化为支持远程和基于消息交换实体对象的格式(如 Web 服务和 Windows Communication Foundation (WCF))。可以使用二进制序列化、XML 序列化和 WCF 约定序列化对对象进行序列化,以便使用二进制流或基于消息的协议进行传输。有关更多信息,请参见序列化对象(实体框架)。还可以从消息或流接收对象,反序列化对象,并将对象附加到对象上下文。有关更多信息,请参见附加对象(实体框架)

使用 ADO.NET 数据服务还可以提供对 EDM 数据的动态访问(采用应用程序可以使用的 XML 格式)。使用标准具象状态传输 (REST) HTTP 操作(如 GET、PUT 和 POST)可以访问这些实体数据。有关更多信息,请参见 ADO.NET 数据服务框架

在创建使用 实体框架 的 Web 服务或 WCF 服务时应考虑以下注意事项:

  • 对于二进制序列化和 DataContract 序列化,支持进行全图序列化。XML 序列化不序列化相关对象。

  • 对象始终以 Detached 状态进行反序列化。可能需要将对象附加或添加到 ObjectContext,也可能只需将属性更改应用于原始对象。有关更多信息,请参见附加对象(实体框架)

  • 建议使用无状态服务。应将服务设计为仅在请求或响应期间维护对象上下文。消息交换模式应包含足够的信息,以便可以应用更改,而不必持久保存对象或重新查询数据源来检索原始对象。例如,允许客户端更新对象的服务应要求更新的对象与原始对象一起返回。这样就可以由 Web 服务使用 ApplyPropertyChanges 方法将更改应用于原始对象,而不必从数据库检索原始对象或将该对象持久保存在存储器中。有关更多信息,请参见如何:应用对已分离对象的更改(实体框架)

另请参见

概念

对象服务概述(实体框架)