The OP in this question asks about using an WCF/OData as an internal data access layer. 

[Arguments of using WCF/OData as access layer instead of EF/L2S/nHibernate directly](https://stackoverflow.com/questions/2498796/arguments-of-using-wcf-odata-as-access-layer-instead-of-ef-l2s-nhibernate-direct)

The resounding reply seems to be don't do it. I'm in similar position to the OP, but have a concern not raised in the original question. I'm trying to develop (natively) for a lot of different platforms but want to keep as much of the data and business logic server side as possible. So I'll have iOS/Android/Web (MVC)/Desktop applications. Currently, I have a single WinForms applications with an ORM data access layer (LLBLGen Pro). 

I'm envisioning moving most of my business / data access logic (possibly still with LLBLGen or other ORM) behind a WCF / OData interface. Then making all my different clients on the different platforms very thin (basically UI and WCF calls). 

Is this also overengineered? Am I missing a simpler solution?