1

我再次遇到了visual studio lightswitch的問題。現在它關於自定義驗證。我有其中有一個外鍵引用其他實體的實體: enter image description herePLS-00103:在期待以下某種情況時遇到符號「」:在驗證ForeignKey實體後LightSwitch中出現錯誤

RouteItem包含一個外鍵FacilityItem看起來像這樣:

enter image description here

我現在想做的事是驗證RouteItem中的ROUTENAME。我必須確保路由名稱不存在於選定的Facility中。

我的驗證代碼如下所示:

IEnumerable<RouteItem> items = this.DataWorkspace.dsMESOracle.dtRoutes.GetQuery().Execute(); 

     if (this.Details.EntityState == EntityState.Added) 
     { 
      items = items.Where(e => e.ROUTENAME == ROUTENAME && e.MES_FACILITY == MES_FACILITY); 
      if (items.Count() > 0) 
      { 
       results.AddPropertyError(ValidationMsgRes.ROUTES_ROUTENAME_ALREADY_EXISTS); 

      } 
     } 
     else if (this.Details.EntityState == EntityState.Modified) 
     { 
      //Ignore the current entity if its modified otherwise it will always get count > 0 
      items = items.Where(e => e.ROUTENAME == ROUTENAME && e.MES_FACILITY == MES_FACILITY && e != this); 
      if (items.Count() > 0) 
      { 
       results.AddPropertyError(ValidationMsgRes.ROUTES_ROUTENAME_ALREADY_EXISTS); 

      } 
     } 

到目前爲止驗證邏輯完美的作品 - 它做什麼,它應該。 的主要問題是訪問this.MES_FACILITY導致以下錯誤,如果電燈開關試圖保存/更新改變:

enter image description here

錯誤也會發生,如果我只寫在驗證實現acilityItem temp = this.MES_FACILITY;

如果我在驗證實現中刪除了所有參考/訪問this.MES_FACILITY的內容,那麼所有參數都可以正常工作。

如果驗證是真或假,這也無關緊要。問題總是發生! PS:問題也會發生與其他實體和外鍵它不是一個所述RouteItem的問題 - FacilityItem組合

回答

0

找到該錯誤/問題的解決方案:

http://msdn.microsoft.com/en-us/library/bb738618.aspx HTTP://knowledgebase.progress。 COM /條/條/ 000028868

解決方法 1.清潔的整體解決方案 2.搜索整個解決方案/項目文件夾(在資源管理器中沒有的VisualStudio或通過使用記事本++)爲ConcurrencyMode =「固定」,並刪除它 3 。重建解決方案 4.開心!

它對我有用:)

相關問題