You need to make sure that the data you return can be serialized by the serializer.
Try reducing the count of records returned to verify that this is the case.
If it is a size issue there are a few things you can try; you can turn up the message payload size on the binding:
<binding name="MyBinding"
...
maxBufferSize="10485760"
maxReceivedMessageSize="10485760"
Or you can change your application logic to read the records in chunks or pages.
I'd go for the latter if possible because it scales better.
Hope this helps,
Fredrik