簡體   English   中英

CRM 2011自定義工作流Linq查詢,當它們不為空時提供空值

[英]CRM 2011 Custom Workflow Linq Queries providing null values when they are not null

我正在為MS Dynamics CRM 2011編寫自定義工作流。在我的工作流中,我有一個專門用於查詢的類–這是因為我對工作流中的其他方法進行了大量的查詢。 對於我的查詢,我正在使用LINQ。

我在測試中遇到一個問題,我有兩種方法可以退出並獲得不同的選項集值。 如果單獨測試,它們都可以工作。 但是,如果我背對着它們進行測試……獲取此選項設置值……然后獲取此選項設置值:后續查詢始終返回null。

<!-- language: cs -->
public int GetOptionSetValues(WorkFlowHelper workFlowHelper, String bracketId)
{
     Guid _bracketId = workFlowHelper.GuidChanger(bracketId);
     var query = from b in workFlowHelper.serviceContext.myEntitySet
                 where b.myEntitySetId.Equals(_bracketId)
                 select new { b.itemToGetOptionSetFrom };
     foreach (var qin query )
     {
       if (q.itemToGetOptionSetFrom == null)
       {
        return 0;
       }
       else
       {
        int optionSetValue = q.itemToGetOptionSetFrom;
        return optionSetValue;
       }
     }
      return 0;
 }

除了“ itemToGetOptionSetFromFrom”不同之外,這兩種方法都與上述相同。 我已經檢查了數據庫,並且這些項目確實具有值。

誰能解釋為什么這樣做呢? 還是指出正確的方向來糾正此問題? 謝謝,

我猜您正在檢索具有相同服務上下文的相同對象。 如果從實體請求屬性,則CRMContext僅使用那些字段和ID緩存該實體的副本。 這意味着包括該實體的所有后續LINQ請求將返回該實體的緩存副本,該副本僅包含您先前請求的ID和屬性。 為避免這種情況,您可以在發出下一個請求之前,調用ClearChanges()刪除緩存的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM