2011-10-12 28 views
8

Tôi đang sử dụng CRM 2011, và cố gắng cập nhật các OwnerId tiếp xúc sử dụng mã này:Tôi có thể cập nhật id chủ sở hữu của một Liên hệ bằng LINQ không?

var crmContext = new CustomCrmContext(service); 

var contact = crmContext.Contact.FirstOrDefault(c=>c.Id == id); 
contact.OwnerId.Id= newOwnerId; 
crmContext.UpdateObject(contact); 
crmContext.SaveChanges(); 

Tôi không nhận được bất kỳ lỗi nào, tuy nhiên, ownerId bao giờ cập nhật trong cơ sở dữ liệu. Tôi có thể cập nhật các thuộc tính khác, nhưng tôi chỉ tự hỏi nếu có lẽ OwnerId là đặc biệt và bạn phải sử dụng OrganizationRequest ("Gán")? Nếu vậy, tài liệu này ở đâu để tôi biết những thuộc tính nào khác mà tôi không thể cập nhật?

Trả lời

12

Không thể sửa đổi chủ sở hữu bản ghi với bản cập nhật. Thay vào đó, bạn phải gửi số AssignRequest.

// Create the Request Object and Set the Request Object's Properties 
var request = new AssignRequest 
{ 
    Assignee = new EntityReference(SystemUser.EntityLogicalName, _newOwnerId), 
    Target = new EntityReference(Account.EntityLogicalName, _accountId) 
}; 


// Execute the Request 
_service.Execute(request); 
+0

Có danh sách các thuộc tính khác yêu cầu đối tượng yêu cầu cụ thể không hoặc là chủ sở hữu duy nhất? – Daryl

+1

Trạng thái là một số khác - tôi nghĩ rằng CRM tạo hai lớp cho mỗi thực thể với mẫu SetStateAccountRequest và SetStateAccountResponse. – glosrob

+1

Như thường lệ, không có cảnh báo từ SDK khi điều này không thành công. – Ryan

Các vấn đề liên quan