An EntityReference
is just the logicalName, name, and id of the entity. So to get an Entity
, you just need to create the entity using the properties of the EntityReference
.
Here is an Extension Method that performs that for you:
public static Entity GetEntity(this EntityReference e)
{
return new Entity(e.LogicalName) { Id = e.Id };
}
Don't forget that none of the other attributes of the entity will be populated. If you want the attributes you'll need to query for them:
public static Entity GetEntity(this IOrganizationService service, EntityReference e)
{
return service.Retrieve(e.LogicalName, e.Id, new ColumnSet(true));
}
And if you like @Konrad's Field answer, make it a params array and it is nicer to call
public static Entity GetEntity(this IOrganizationService service, EntityReference e,
params String[] fields)
{
return service.Retrieve(e.LogicalName, e.Id, new ColumnSet(fields));
}