MS Dynamics CRM 2011 SDK – 使用后期绑定更新实体记录

有没有人知道如何使用SDK for Dynamics CRM 2011保存对后期绑定实体的更改?

这就是我尝试过的:

// 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!" ); } 

谢谢你的帮助:)

试试这个:

 pet["foodtype"] = "Seaweed"; xrm.UpdateObject( pet ); xrm.SaveChanges(); 

编辑: "The context is not currently tracking the 'pet' entity"意味着您从Retrieve获得的对象未附加到服务上下文。 有一种方法可以做到这一点。

 xrm.Attach( pet ); pet["foodtype"] = "Seaweed"; xrm.UpdateObject( pet ); xrm.SaveChanges(); 

这有效:

 pet["foodtype"] = "Seaweed"; pet.EntityState = EntityState.Changed; // not sure if this is really needed // save pet xrm.Update(pet);