XrmLinq releases version 1.5
XrmLinq is proud to release XrmLinq version 1.5, the second release to be made under its new Microsoft ISV (Independent Software Vendor) status!
Download the trial version 1.5
Announcement
We are announcing a developer license, this will allow you to redistribute XrmLinq along with your application to an unlimited number of organizations and use with unlimited number of applications you build on top of Dynamics CRM.
FetchXml Support
We have finally added support for fetchxml. Now you are able to retrieve attributes from multiple linked entities using a single call to the crm web service.
Here is an example of how you would use fetchxml instead of query expressions.
CrmDataContext context = new CrmDataContext(Connection.Create("server", "org"));
context.QueryThrough = QueryThroughType.FetchXml;
More v1.5 Improvements
- Removed dependency on the CrmDataAccess classThe generated code will use the context that you define to query one-to-many and many-to-one links. You can also use Create, Update, Retrieve (and other methods) that were inside CrmDataAccess directly from the context.
context.Update<Account>(myAccount);This allows you to write unit tests more easily, you can now create a mock context by inheriting from the XrmDataContext class.
- Removed ForceNullOnUpdateThe ForceNullOnUpdate property has been removed, we have changed our internal methods to make this automatic and transparent to you the developer. For example, to update an account
if (myAccount != null)
{myAccount.Name = string.Format("Updated {0}", myAccount.Name);
context.Update<Account>(account);}
- Added support for to, cc, bcc fieldsv1.4 and below; you were not able to get or set values fro these fields, however in v1.5 we have added support for these attributes. These attributes are now mapped to the ActivityParty class. Example:
Email mail = (from e in context.Emails
select e).Take(1).SingleOrDefault();for (int i = 0; i < mail.To.Count; i++)
{Console.WriteLine(mail.To[i].PartyIdType); // user, account, contact or lead
Console.WriteLine(mail.To[i].PartyId); // pointer to the entity
Console.WriteLine("Email Address: {0}", mail.To[i].AddressUsed);
}
Bug Fixes
- Fixed: Method call or condition expression on a selector not selecting the correct attributes
- Fixed: Some queries not joining correctly
- Fixed: Projecting to an anonymous class not selecting the correct attributes
- Fixed: Picklist labels with special characters causing compile time errors
- Fixed: Lookup properties not being saved properly
- Improvement: Performance of fetchxml improved by 25%
Breaking Changes
- Code generated using v1.4 will not work with the v1.5 XrmLinq.dll
- Several public methods removed from CrmDataAccess
- ForceNullOnUpdate removed from CrmEntity
- Sdk and ISdk property removed from CrmEntity
- Several Set* and Get* method signatures changed
- VB.NET code generation suspended until next version (T4 templates)
What’s Coming Next?
- Count, Sum, Avg fetchxml support
- T4 template allowing you to control the generated code
Feature Requests and Feedback
Please contact support@xrmlinq.com





Try XrmLinq