我正在尝试使用Organization.svc和C#
获取数据此代码在第一次运行时成功获取数据。 然而,当我再次调用它时,它再次被调用,数据几乎瞬间完成。
我禁用了我的互联网连接,发现它仍在获取数据。
我不确定我的数据是否在本地缓存,但它肯定不是来自我的CRM服务器。
第一次通话后,如何获取实际数据?
// CONSTANTS DEFINED UP HERE
// (SERVICE_URI, USERNAME, PASSWORD, TIME_ENTITY_NAME,GUID, TIME_QTY)
//
static void Main(string[] args)
{
while (true)
{
CrmConnection connection = new CrmConnection();
connection.ServiceUri = new Uri(SERVICE_URI);
connection.ClientCredentials = new System.ServiceModel.Description.ClientCredentials();
connection.ClientCredentials.UserName.UserName = USERNAME;
connection.ClientCredentials.UserName.Password = PASSWORD;
using (CrmOrganizationServiceContext context = new CrmOrganizationServiceContext(connection))
{
try
{
Entity entity = context.Retrieve(TIME_ENTITY_NAME, GUID, new ColumnSet(TIME_QTY));
Console.WriteLine(entity.Attributes[TIME_QTY]);
}
catch (Exception e)
{
Console.WriteLine( e.Message);
}
}
Console.ReadKey();
Console.WriteLine("\n");
}
答案 0 :(得分:1)
我明白了。我不得不仔细看看我创建的 Crm OrganizationServiceContext 对象。
我不得不从缓存中删除实体。
try {
Entity entity = context.Retrieve(TIME_ENTITY_NAME, GUID, new ColumnSet(TIME_QTY));
context.TryRemoveFromCache(entity); // <- This fixed the cache issue.
Console.WriteLine(entity.Attributes[TIME_QTY]);
}