2015-04-06 40 views
5

我正在構建簡單的ASP.NET MVC網頁,顯示MS Dynamics CRM的所有活動帳戶。刷新頁面後顯示舊CRM數據

如果我編譯並運行(使用F5),基本上可以正常工作。當我進入Microsoft Dynamics CRM網頁時,出現問題登錄,然後將一個帳戶狀態從活動狀態更改爲非活動狀態。現在,當我刷新正在構建的頁面時,我會得到相同的舊結果。

我已嘗試刷新(F5),硬刷新(Ctrl + F5),在返回視圖之前配置xrm對象,但沒有任何工作。所以我想我誤解了一些東西。

控制器/ HomeControler.cs

public ActionResult Index() 
{ 
    using (var xrm = new XrmServiceContext("Xrm")) 
    { 
     var accounts = from a in xrm.AccountSet 
         where a.StateCode == 0 
         select a; 

     List<AccountModel> accountModels = new List<AccountModel>(); 

     foreach (var account in accounts) 
     { 
      Debug.WriteLine(c+"\t"+account.Id+"\t"+account.Name); 
      Debug.WriteLine(account.Address1_Composite); 
      accountModels.Add(new AccountModel(
       account.Id.ToString(), 
       account.Name, 
       account.Address1_Composite)); 
     } 

     ViewBag.Title = "Page Title"; 
     ViewBag.AccountModels = accountModels; 
    } 
    return View(); 
} 

查看/主頁/ Index.cshtml

@{ 
    Layout = @"~/Views/Shared/_Layout.cshtml"; 
} 

<div class="table-responsive"> 
    <table class="table table-bordered table-condensed table-hover"> 
     <caption><h2>Active Accounts</h2></caption> 
     <thead> 
      <tr> 
       <th>Account ID</th> 
       <th>Account Name</th> 
       <th>Account Address</th> 
      </tr> 
     </thead> 
     <tbody> 
      @{ 
       foreach (var accountModel in ViewBag.AccountModels) 
       { 
        <tr> 
         <td>@accountModel.Id</td> 
         <td>@accountModel.Name</td> 
         <td>@accountModel.Address</td> 
        </tr> 
       } 
      } 
     </tbody> 
    </table> 
</div> 

編輯: 現在我注意到,經過「重建僅第一刷新運行「實際刷新網站。這是IIS Express(我在本地執行此操作)錯誤嗎?

+0

實際上你有新的數據或舊數據? – adricadar

+0

@adricadar舊數據與查看 – mm3058

+0

相同嗯,您是否試圖刪除記錄並查看信息是否仍然相同或更改了某些數據? – Sxntk

回答

2

在web.config中配置XRM上下文很重要。默認情況下,服務使用CachedOrganizationService實例化,顧名思義,該服務緩存所有數據。

要禁用緩存,請使用以下配置(用自己的ServiceContext替換Xrm.XrmServiceContext, Xrm):

<microsoft.xrm.client> 
    <contexts> 
    <!-- Replace with your actual ServiceContext --> 
    <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" serviceName="Xrm" instanceMode="PerRequest"/> 
    </contexts> 
    <services> 
    <!-- Disable cache --> 
    <add name="Xrm" type="Microsoft.Xrm.Client.Services.OrganizationService, Microsoft.Xrm.Client"/> 
    </services> 
</microsoft.xrm.client> 

有關默認配置的詳細信息,在MSDN檢查Developer extensions context object model