You need the entity classes on the client. This is because if you send an entity to the server, it gets serialized and can't be re-instantiated into another class, even if that class implements the proper interface because you likely miss essential info like sync information between related entities in the graph.