2017-01-12 2 views
0

У меня есть wcf, который подключается к crm (на предварительном), чтобы получить запись учетной записи. я вижу, когда объект извлекается, он не удерживает текущую запись, то есть какое-то поле по-прежнему будет хранить старое значение столбца. я попробовал с различными вариантами слияния безрезультатно. см. код нижеОбъект XrmServiceContext не получает последние данные из CRM

using (XrmServiceContext cContext = new XrmServiceContext(con)) 
{     
    Entity ent = cContext.Retrieve(ConstantKVP.AccountSchema.ENTITY_LOGICAL_NAME, AccountId, new ColumnSet(true)); 
} 

любые предложения?

+0

Убедитесь, что данные, которые вы пытаетесь изменить, сохраняются, контекст будет обращаться к значениям базы данных. Если вы внесете изменения в пользовательский интерфейс без сохранения этих новых значений, не будет сохранено в базе данных –

+0

, я думаю, что я не объяснил, что я сам правильно ... данные сохраняются непосредственно в crm с использованием формы crm. wcf получает дату после этого, но все равно сохраняет предыдущее значение полей ... –

ответ

0

Возможен ли данные кэшируются?

cContext.TryAccessCache(cache => cache.Mode = OrganizationServiceCacheMode.Disabled);

Я принял этот подход для CrmOrganizationServiceContext, поэтому, возможно, применяется та же теория.

+0

я уже изменил кода, чтобы он использовал ранний связанный сервисный прокси-сервер org. код выглядит намного чище (и смею сказать быстрее) со значительными изменениями в модели данных. но +1 для ответа в любом случае ... –

0

После сохранения использования четких изменений cContext.ClearChanges();

Для Извлекаешь использовать MergeOption.OverwriteChanges

Или

Создать новый объект XrmServiceContext пропускания обновленного до organizationservice:

var uncachedOrganizationService = new OrganizationService("Xrm"); 
var uncachedXrmServiceContext = new XrmServiceContext(uncachedOrganizationService); 
var ent = uncachedXrmServiceContext.Retrieve(ConstantKVP.AccountSchema.ENTITY_LOGICAL_NAME,AccountId,new ColumnSet(true)); 
+0

извините, но первое решение не сработало .. второе, похоже, немного избыточно. Я попытался с быстрым консольным приложением и, похоже, с помощью organizationerviceproxy не возникает эта проблема. но это означает прощаться до ранних классов. –

+0

Вы отделили объект до четких изменений? – dynamicallyCRM

+0

Я не прикрепляю объект к существованию. Я просто выбираю запись в первый раз ... –

Смежные вопросы