c# - SDK de MS Dynamics CRM 2011: actualizar el registro de la entidad utilizando el enlace de última hora
dynamics-crm-2011 (2)
Esto funciona:
pet["foodtype"] = "Seaweed";
pet.EntityState = EntityState.Changed; // not sure if this is really needed
// save pet
xrm.Update(pet);
¿Alguien sabe cómo guardar los cambios en una entidad de última hora utilizando el SDK para Dynamics CRM 2011?
Esto es lo que he intentado:
// retrieve and modify a pet...
// (This part works)
Guid findId = new Guid("6CA57D73-30CC-E111-B155-00505630052F");
ColumnSet attributes = new ColumnSet(new string[] { "name", "foodtype" });
// try to retrieve
// (this also works)
pet = xrm.Retrieve("pet", findId, attributes);
if( pet!=null )
{
Console.WriteLine( String.Format( "Retrieved pet {0} successfully!", pet["name"].ToString() ));
// update attributes
pet["foodtype"] = "Seaweed";
// (from here doesn''t seem to work)
// save pet
xrm.SaveChanges();
Console.WriteLine( "Done!" );
}
Gracias por toda la ayuda :)
Prueba esto:
pet["foodtype"] = "Seaweed";
xrm.UpdateObject( pet );
xrm.SaveChanges();
EDITAR: "The context is not currently tracking the ''pet'' entity"
significa que el objeto que obtienes de Retrieve
no está adjunto al contexto del servicio. Hay un método Attach
que hace exactamente eso.
xrm.Attach( pet );
pet["foodtype"] = "Seaweed";
xrm.UpdateObject( pet );
xrm.SaveChanges();