[英]MS Dynamics CRM 2011 SDK - Update entity record using late-binding
does anyone know how to save changes to a late-bound entity using the SDK for Dynamics CRM 2011? 有没有人知道如何使用SDK for Dynamics CRM 2011保存对后期绑定实体的更改?
This is what I've tried: 这就是我尝试过的:
// 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!" );
}
Thanks for all help :) 谢谢你的帮助:)
Try this: 试试这个:
pet["foodtype"] = "Seaweed";
xrm.UpdateObject( pet );
xrm.SaveChanges();
EDIT: "The context is not currently tracking the 'pet' entity"
means the object you get from Retrieve
is not attached to the service context. 编辑:
"The context is not currently tracking the 'pet' entity"
意味着您从Retrieve
获得的对象未附加到服务上下文。 There's a method Attach
that does just that. 有一个方法
Attach
,不只是这一点。
xrm.Attach( pet );
pet["foodtype"] = "Seaweed";
xrm.UpdateObject( pet );
xrm.SaveChanges();
This works: 这有效:
pet["foodtype"] = "Seaweed";
pet.EntityState = EntityState.Changed; // not sure if this is really needed
// save pet
xrm.Update(pet);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.