2010-07-26 54 views
0

我目前在MVC中有一個View,我將一組數據傳遞給視圖。但是,我遇到了一個問題,我必須在View的For Each循環內使用LINQ查詢來從另一個數據庫的SQL視圖中提取其他信息。使用LINQ無法將後期綁定操作轉換爲表達式樹

我收到的錯誤是後期綁定操作無法轉換爲表達式樹

我現在遇到的錯誤的特定片段是:

  <% 
      For Each oCall In ViewData.Model 
       %> 
       <tr> 
        <td width="290"><a href="/Calls/Details/<%=oCall.CallID %>"><%=oCall.CallSubject %></a></td> 
        <td width="140"><%=oCall.CallReference %></td> 
        <td width="130"><%=oCall.CallType.CallTypeName %></td> 
        <td width="150"><%=oCall.DateOpened %></td> 
        <% 
         Dim assigned As String 
         Dim db As New CustomerServicesModelDataContext 

         Dim tStore = (From a In db.vStores _ 
             Where a.CompanyID = oCall.CompanyID _ 
             And a.StoreNumber = oCall.StoreID _ 
             Select a).SingleOrDefault() 
         assigned = tStore.Store 
         %> 
        <td width="175"> 
         <%= assigned%> 
        </td> 
       </tr> 
       <% 
      Next 

      %> 

錯誤發生兩次。首先在oCall.CompanyID上,然後在oCall.StoreID上。

我錯過了什麼嗎?

感謝您提前提供任何幫助。

+0

在您的意見中的數據庫訪問!!!?!?!驚恐的事件! – jfar 2010-07-26 14:47:16

+0

我知道,這只是一個快速和骯髒的工作,我會在有空的時候回來修復。 – LiamGu 2010-07-26 15:29:07

回答

4

利亞姆,

我已經看到這種情況發生前,我已經通過分配oCall.CompanyID值周圍有和oCall.StoreID變量,即:

int companyId = oCall.CompanyID; 
int storeId = oCall.StoreID; 

然後插入該進入你的linq表達式。基本上,問題是試圖同時解決兩個syncronys調用。

希望這有助於。

jim

+0

然而,讓我轉向另一個問題的是,這個問題引起了我的注意。 我現在收到錯誤方法'System.Object CompareObjectEqual(System.Object,System.Object,Boolean)'沒有支持轉換爲SQL' – LiamGu 2010-07-26 15:28:11

+0

好吧,沒問題,請嘗試使用此代替:a.CompanyID.Equals( companyId)和a.StoreNumber.Equals(storeId)。 – 2010-07-26 15:39:40

+0

非常好,那個伎倆。謝謝。 – LiamGu 2010-07-26 15:41:57

相關問題