The Microsoft Dynamics CRM Blog
News and views from the Microsoft Dynamics CRM Team

A better way to learn LINQ-to-CRM – LINQPad plugin for MS Dynamics CRM 2011 is available!

A better way to learn LINQ-to-CRM – LINQPad plugin for MS Dynamics CRM 2011 is available!

  • Comments 6

In Microsoft Dynamics CRM 4.0, we introduced LINQ for our developers through the Advanced Developer Extensions for Microsoft Dynamics CRM 4.0 toolkit. We have further improved this support in Dynamics CRM 2011 by including LINQ as a first class data query mechanism. A better alternative to QueryExpression, LINQ provides a simple, intuitive and unified approach for data retrieval across different data sources.

Those of you who already use LINQ in some other .NET projects are possibly familiar with a great tool that makes LINQ developers’ life easier – LINQPad (www.linqpad.net). LINQPad is similar to SQL Management Studio – it lets you connect to various data sources (for which LINQ providers exist), examine their structure (just like you do with tables and columns in SQL Management Studio), and, finally, write and execute LINQ queries on a fly. LINQPad is a terrific tool to experiment with LINQ. It eliminates a need to create a separate sample C# project to test your queries.

I have written a new tool “LINQPad Plugin for Microsoft Dynamics CRM 2011” to help CRM developers learn and test LINQ queries against any CRM 2011 deployment. The project is available for download from its MSDN Code Gallery page - http://code.msdn.microsoft.com/crmlinqpad

The application is fairly easy to use. You create a connection to a CRM organization by entering organization URL and credentials, and then the plugin retrieves information about the organization’s entities. A tree-like structure of entity sets and entity attributes will be displayed on the left panel of the application. Once that is done, you can write and execute LINQ statements from the main application window. The results of the execution will be shown in a table on the bottom panel. You can also switch to SQL tab (don’t be confused with the name here, the tab was originally intended for LINQ-to-SQL) and examine QueryExpression that was used for data retrieval behind the scenes.

clip_image002

clip_image004

The plugin supports all CRM deployment types – Online, OnPremise and SPLA.

More instructions on how to download and configure LINQPad and the plugin can be found in the Home section of the plugin’s MSDN Code Gallery page.

Some LINQ-to-CRM query samples are provided with the CRM 2011SDK, under samplecode/cs/generalprogramming/queries folder.

Cheers,

Alex Igrushkin



  • The only issue is half of the Linq operators aren't supported by the CRM Linq provider so you may end up frustrated by queries that just won't work in CRM.

  • CRM Linq syntax is limited to whatever operations is available through QueryExpression. Every LINQ query gets translated into a QueryExpression which is executed on the server side. It doesn't do any client data processing (except for final data projection in LINQ select operator).

  • Is your pluggin tested against CRM 4.0 SDK?

  • It doesn't work against MS CRM 4.0 endpoint.

    MS CRM 4.0 has a different LINQ provider which was shipped with  Advanced Developer Extensions for Microsoft Dynamics CRM 4.0 toolkit (blogs.msdn.com/.../microsoft-dynamics-crm-sdk-4-0-12-and-the-advanced-developer-extensions.aspx).

  • Nice work!

  • The Plugin doesn't connect to my on-premises CRM. The credentials are right. I have WIF installed. I don't know if it's related, but when I use the same credentials against the release version CrmSvcUtil I get the same error. I downloaded the beta and CrmSvcUtil works. A post suggested this because the release version is not signed. Any ideas?

Page 1 of 1 (6 items)
Leave a Comment
  • Please add 7 and 7 and type the answer here:
  • Post