2016-07-26 15 views
0

Ich versuche, eine Anwendung zu entwickeln, um Updates zu unserer CRM-Datenbank über eine Gridview zu ermöglichen.Update CRM Lookup Feld von C#

Alles, was ich habe, arbeitete bis zum Versuch, ein Nachschlagefeld zu aktualisieren.

Die folgende arbeitet C# -Code:

_service = GlobalFunctions.GetServiceAccount(); 
GlobalFunctions.User u = (GlobalFunctions.User)Session["UserInfo"]; 

Entity aspiration = new Entity("tog_aspiration"); 
aspiration.Id = new Guid(inputGridView.DataKeys[e.RowIndex].Value.ToString()); 
aspiration["tog_nofollrl"] = Int32.Parse(tog_nofollrl); 
_service.Update(aspiration); 

Nun, wenn versucht wird, das Nachschlag-Feld auf das Update hinzufügen, um es mir einen Fehler gibt.

_service = GlobalFunctions.GetServiceAccount(); 
GlobalFunctions.User u = (GlobalFunctions.User)Session["UserInfo"]; 

Entity aspiration = new Entity("tog_aspiration"); 
aspiration.Id = new Guid(inputGridView.DataKeys[e.RowIndex].Value.ToString()); 
aspiration["tog_nofollrl"] = Int32.Parse(tog_nofollrl); 
aspiration["tog_techidname"] = new EntityReference("equipment", new Guid(ddlVet.SelectedValue)); 
_service.Update(aspiration); 

Hier ist der Fehler

Incorrect attribute value type System.String 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
Exception Details: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Incorrect attribute value type System.String 

Antwort

1

Nur um sicher zu machen, ist das Nachschlag-Feld genannt tog_techidname oder nur tog_techid? Jede Suche hat ein zugeordnetes Namensfeld, das ist der Suchname + "Name", aber Sie können es nicht direkt aktualisieren. Es genügt, die ID mit der EntityReference zu aktualisieren.

Versuchen mit

aspiration["tog_techid"] = new EntityReference("equipment", new Guid(ddlVet.SelectedValue)); 
+0

Ich habe gerade versucht, dass und es konnte nicht mit dem gleichen Fehler. Ich bin nicht 100% sicher, dass "Ausrüstung" richtig ist. Was sollten die Parameter der EntityReference() sein? – MMoore94

+0

auch "tog_techidname" ist der Spaltenname in der Datenbank. Ich schaute in der Ausrüstungsansicht in der Datenbank und es enthält AusrüstungsID und Name. Es enthält nicht EquipmentIDName. – MMoore94

+0

Wie lautet das Feld in der CRM-Entität? EntityReference sollte ein Paar des LogicalName der Entity und eine Guid sein, sonst nichts. – Jordi