3

我正在尝试使用我的 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");
        }
4

1 回答 1

1

我想到了。我必须仔细查看我创建的CrmOrganizationServiceContext对象。

我不得不从缓存中删除实体。

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]); 
}
于 2014-06-02T16:31:46.477 回答