I find ES query syntax to be more intuitive and user-friendly than linq. The idea behind linq is great: that a robust syntax can be used on any data in order to build filtered collections, and that the syntax is user-friendly. Linq is much better than dealing with the nuances of every individual type of data source out there. So, the idea with linq is that the same syntax can be used regardless of data source: its another attempt at standardization.
Here is what I discovered:
1. Linq is based on reflection and determining types at runtime;therefoe, its performance is degraded.
2. Linq does not serialize well. What this means is that Linq is rather limiting in an n-tier scenario, where the client should be able to build a query and request a result set back from a service by providing the requested query (filter) info. I have learned that the dynamic benefits of linq come at a significant cost and that linq does not work well in anything other than a 2-tier (client-database) scenario (in my opinion). Serializing an object graph requires very challenging and robust design (serializing gobject graphs does not work - 'out-of-the-box' with linq because you have to serialize the object meta data just to pass along a query request). The work-around is to pre-create the possible "parameters" in a query request and build the actual linq query on the service-side. Frankly, linq sucks compared to ES in n-tier scenarios. Can you use it - yes. Is it better than ES - not in my opinion.
3. A disadvantage of ES is that queries are based on typed objects. Well, for me, this disadvantage is the main advantage. The result of using ES is much faster performance, query requests and objects are serializable, and you still get database independence - you donl;t have t change your code to switch databases.
Honestly, because of the object graphing problem and performance cost associated with linq, I have rejected it. NOTE: I only rejected it because I think the ES sytax is better anyway. Its easier to read/create. Its serializable. Its customizable. Its database independent. Its fast - rocket fast. It optimizes queries for performance.
So, I think many ES benefits can be gained by using ES in conjunction with linq; however, I think ES beats linq in every category. Maybe someone else has differing experience, but I am not aware of any gain using linq instead of the ES query syntax. I am aware of losses using linq instead of the ES stntax.
...just my two cents