LinqPad is a great tool to quickly query CRM and export the records you want, for further processing. LinqPad Driver for Dynamics CRM is what this post is about – specifically on how to use “FormattedValues” in your queries. There are formatted values for Money, Optionset and DateTime. I will demonstrate on how to use Optionset text values in where condition.
For example this is how you can query all the open opportunities.
from q in OpportunitySet.AsEnumerable() where q.FormattedValues["statecode"].ToLower() == "open" select new { q.CreatedOn, q.Id, StateCodeName = q.FormattedValues["statecode"], q.StateCode }
The critical bit here is the “AsEnumerable”. If you don’t convert your set to an Enumerable, you would get this error.
There is a another LinqPad Driver for CRM (https://github.com/kenakamu/CRMLinqPadDriverWebAPI), but you wont be able to run similar query as WebAPI doesn’t seem to be exposing the “FormattedValues” property for each record.
You saved me on this one. Thanks!
Glad it was helpful.