I want to offer my users a rich query functionality so they can dynamically add Where clauses, change sort orders and groupings. oData seems to be the best technology for the job, but I don't know how to implement it correctly in a MVC application.
1) How can I connect a feature rich client that supports oData with a MVC architecture?
2) Must I expose IQueryable on my repository?
3) Can anyone explain how to Create, Update, or Delete when using 2 joined tables in MVC? (in the service layer?)
A good place to start learning about OData is here: http://msdn.microsoft.com/en-us/data/odata.aspx
In General OData and Web Services should be used if they are required because 1) You physical tiers need to be separated for security or performance reasons or 2) Multiple applications or consumers need to use the same API. There are of course other reasons but generally if you have to ask if OData makes sense you don't have those requirements. ;)