如何在插件中使用LINQ更新CRM 2011实体?

Cha*_*had 11 plugins dynamics-crm dynamics-crm-2011

我们能够创建没有任何问题的新实体,但是更新插件中的现有实体似乎不起作用.这适用于CRM 2011.

var crmContext = new CustomCrmContext(service);

var contact = crmContext.Contact.FirstOrDefault(c=>c.Id == targetEntity.Id);

contact.new_CustomField = "Updated";

crmContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

Jos*_*ter 15

如果您已经拥有Id,则无需下载整个联系人记录,只需更新一两个字段即可.您也不需要OrganizationServiceContext - 只需要Service.尝试类似的东西:

var c = new contact() {
  Id = targetEntity.Id,
  new_CustomField = "Updated"
}

service.Update(c);
Run Code Online (Sandbox Code Playgroud)

这将首先保存查询联系人的往返.


cce*_*lar 13

您必须将对象标记为已修改,以便将其提交给服务器.请参阅OrganizationServiceContext.UpdateObject(Entity)

您应该添加 crmContext.UpdateObject(contact);之前crmContext.SaveChanges();