我在xrm.saveChanges()]上报错,如果我在AddObject正常工作的情况下执行UpdateObject,则最初我认为这是由于此线程Dynamics CRM saving Entity Changes - Getting Errors中讨论的上下文所致但我尝试了此处讨论的所有选项https://msdn.microsoft.com/en-us/library/gg695783.aspx,但没有任何帮助。
我的代码是`
using (var xrm = new XrmServiceContext("Xrm")) { WriteExampleContacts(xrm); //Create a new contact called Allison Brown. var allisonBrown = new Xrm.Contact { FirstName = "Allison", LastName = "Brown", Address1_Line1 = "23 Market St.", Address1_City = "Sammamish", Address1_StateOrProvince = "MT", Address1_PostalCode = "99999", Telephone1 = "12345678", EMailAddress1 = "[email protected]" }; xrm.AddObject(allisonBrown); xrm.SaveChanges(); WriteExampleContacts(xrm); //Update the e-mail address of Allison Brown and link her to the account Contoso. //allisonBrown.contact_customer_accountsParentCustomerAccount = account; using (var xrm2 = new XrmServiceContext("Xrm")) { xrm.Detach(allisonBrown); xrm2.Attach(allisonBrown); allisonBrown.EMailAddress1 = "[email protected]"; xrm2.UpdateObject(allisonBrown); xrm2.SaveChanges(); } //Update the contact record and then commit the changes to Microsoft Dynamics CRM. } Console.WriteLine("Press any key to exit."); Console.ReadKey(); } /// <summary> /// Use all contacts where the email address ends in @example.com. /// </summary> private static void WriteExampleContacts(XrmServiceContext xrm) { var exampleContacts = xrm.ContactSet .Where(c => c.EMailAddress1.EndsWith("@example.com")); //Write the example contacts. foreach (var contact in exampleContacts) { Console.WriteLine(contact.FullName); } }
我得到的错误是
> Microsoft.Xrm.Sdk.SaveChangesException was unhandled HResult=-2146233088 Message=An error occured while processing this request. Source=Microsoft.Xrm.Sdk StackTrace: at Microsoft.Xrm.Sdk.Client.OrganizationServiceContext.SaveChanges(SaveChangesOptions options) at Microsoft.Xrm.Sdk.Client.OrganizationServiceContext.SaveChanges() at MuslimAidConsoleApplication.Sample.Main(String[] args) at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: System.ServiceModel.FaultException HResult=-2146233087 Message=The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://schemas.microsoft.com/xrm/2011/Contracts/Services:request. The InnerException message was 'Error in line 1 position 12522. Element 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:value' contains data from a type that maps to the name 'http://schemas.microsoft.com/xrm/7.1/Contracts:ConcurrencyBehavior'. The deserializer has no knowledge of any type that maps to this name. Consider changing the implementation of the ResolveName method on your DataContractResolver to return a non-null value for name 'ConcurrencyBehavior' and namespace 'http://schemas.microsoft.com/xrm/7.1/Contracts'.'. Please see InnerException for more details. Source=mscorlib
任何帮助将不胜感激
我在xrm.saveChanges()上报错,如果我在AddObject正常工作的情况下执行UpdateObject,则最初我认为这是因为此线程中讨论的上下文,因为Dynamics CRM保存了实体更改...