c# sdk dynamics-crm-2011

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();