No, you can use the DataContractSerializer. DCS recognizes older serialization attributes and interfaces, and since entities are marked Serializable and implement IXmlSerializable they can be serialized with DCS.
You can mark any property with a serializable data type with the WebServiceVisible attribute. Properties returning collections of related entities can be returned too. In order to return the object graph though (eg, an order and its details), you also have to add the associated EntityRelationLinks to the EntitySerializationHelper.PublishRelationList, like so:
EntitySerializationHelper.PublishRelationList(pm).AddRange(span.EntityRelationLinks);
The EntitySerializationHelper is intended for internal use only, and could be marked as internal in some future release (although there are no plans to do so right now).