Un EntityReference
è solo il nome logico, il nome e l'id dell'entità. Quindi, per ottenere uno Entity
, è sufficiente creare l'entità utilizzando le proprietà dello EntityReference
.
Ecco un metodo di estensione che esegue che per voi:
public static Entity GetEntity(this EntityReference e)
{
return new Entity(e.LogicalName) { Id = e.Id };
}
Non dimenticate che nessuno degli altri attributi dell'entità verrà popolato. Se si desidera che gli attributi è necessario eseguire una query per loro:
public static Entity GetEntity(this EntityReference e, IOrganizationService service)
{
return service.Retrieve(e.LogicalName, e.Id, new ColumnSet(true));
}
E se ti piace @ risposta Campo di Konrad, rendono una matrice params ed è più bello chiamare
public static Entity GetEntity(this EntityReference e,
IOrganizationService service, params String[] fields)
{
return service.Retrieve(e.LogicalName, e.Id, new ColumnSet(fields));
}