2011-10-12 16 views
8

मैं CRM 2011 का उपयोग कर रहा है, और इस कोड का उपयोग संपर्क के OwnerId अद्यतन करने के लिए प्रयास कर रहा:क्या मैं LINQ का उपयोग कर संपर्क के मालिक आईडी को अपडेट कर सकता हूं?

var crmContext = new CustomCrmContext(service); 

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

मैं किसी भी त्रुटि नहीं मिलता है, तथापि, ownerId कभी नहीं डेटाबेस में अद्यतन करता है। मैं अन्य विशेषताओं को अपडेट करने में सक्षम हूं, लेकिन मैं बस सोच रहा हूं कि क्या स्वामी आईडी विशेष है और आपको OrganizationRequest ("असाइन करें") का उपयोग करना होगा? यदि हां, तो यह दस्तावेज कहां है, इसलिए मुझे पता है कि मैं कौन से अन्य गुण अपडेट नहीं कर सकता हूं?

उत्तर

12

एक रिकॉर्ड के मालिक को अद्यतन के साथ संशोधित नहीं किया जा सकता है। आपको इसके बजाय 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

क्या अन्य गुणों की एक सूची है जिसके लिए एक विशिष्ट अनुरोध वस्तु की आवश्यकता होती है, या मालिक केवल एक ही है? – Daryl

+1

स्थिति एक और है - मुझे लगता है कि सीआरएम प्रति इकाई दो वर्ग उत्पन्न करता है पैटर्न SetStateAccountRequest और SetStateAccountResponse के साथ। – glosrob

+1

सामान्य रूप से, जब यह विफल हो जाता है तो एसडीके से कोई चेतावनी नहीं होती है। – Ryan