I am reading through the MS CRM 2011 SDK docs and see two ways for accessing entities: OrganizationServiceContext or OrganizationServiceProxy.
Why would I choose one m
OrganizationServiceContext contains the LINQ provider for CRM. Using it you can construct LINQ queries instead of using QueryExpression or FetchExpressions which are required if you use IOrganizationService direclty.
crmsvcutil.exe can generate a CRM organization specific class that inherits from OrganizationServiceContext in that case you get properties like ContactSet, AccountSet on the generated class that make it easier to compose queries.
You must have an IOrganizationService isntance to use OrganizationServiceContext.
See http://msdn.microsoft.com/en-us/library/gg328028.aspx for more details.