CRM Retrieve entity - Error: невозможно привести объект типа "Microsoft.Xrm.Sdk.Entity" к типу "CRMEntities.List"
Я генерировал сущности из CRM следующим образом:
CrmSvcUtil.exe /url:http://<servername>/<organizationname>/XRMServices/2011/Organization.svc
/out:<outputfilename>.cs /username:<username> /password:<password> /domain:<domainname>
/namespace:CRMEntities /serviceContextName:XrmServiceContext
Для serviceContextName я устанавливаю XrmServiceContext. Я хочу получить некоторую сущность из CRM, используя следующий код:
var context = new XrmServiceContext(myorgserv);
var marketingList = context.ListSet.Where(item => item.Id == new Guid("SOME GUID"));
И я получаю ошибку:
Message "Unable to cast object of type 'Microsoft.Xrm.Sdk.Entity' to type 'CRMEntities.List'."
После "добавить к просмотру" я увидел, что каждый набор объектов в контексте имеет одно и то же сообщение. Что я пропустил?
1 ответ
Решение
Задача решена. После инициализации OrganizationServiceProxy мне нужно вызвать метод EnableProxyTypes.
OrganizationServiceProxy orgserv;
ClientCredentials clientCreds = new ClientCredentials();
clientCreds.Windows.ClientCredential.UserName = username;
clientCreds.Windows.ClientCredential.Password = password;
clientCreds.Windows.ClientCredential.Domain = domain;
IServiceConfiguration<IOrganizationService> orgConfigInfo = ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(orgServiceUri);
orgserv = new OrganizationServiceProxy(orgConfigInfo, clientCreds);
orgserv.EnableProxyTypes();
Ключевым моментом является: orgserv.EnableProxyTypes ();