2009-07-24 120 views
3

我有一個圖庫實體框架類,我試圖使用張貼在ScottGu的博客上的動態Linq庫來查詢實體集。 的代碼失敗的一行:使用動態Linq實體框架引發的奇怪異常查詢

return context.Galleries.OrderBy(sidx + " " + sord).Skip(page * rows).Take(rows).ToList(); 

SIDX == 「名稱」,並SORD == 「遞減」。

Gallery對象確實有一個名爲「Name」的屬性。但是,執行時,我會得到以下例外:

'標題'無法在當前範圍或上下文中解析。確保所有被引用的變量範圍,所需模式加載,並命名空間正確引用,近簡單的標識符,第6行,第1列

有誰知道這是什麼意思?

+0

該錯誤在其他地方,可能在查詢中。您包含的代碼行只是執行查詢的行(由於ToList)。你看到那裏的錯誤表面,但真正的錯誤在別處。我的第一個猜測是映射,但是這裏沒有足夠的代碼來說明。 – 2009-07-27 19:56:15

回答

0

我發現了一個修復程序,但它沒有解釋原始問題。查詢在一個庫中,並從asp.net mvc應用程序中引用。它編譯得很好,但在運行時被轟炸。 此修復程序將dynamiclinq類放入mvc應用程序本身,從庫中返回一個簡單的IQueryable,並在控制器中進行過濾。在那裏工作的代碼完全相同。不知怎的,圖書館的分離導致了這個問題。

2

使用:AsQueryable已<>

return context.Galleries.AsQueryable().OrderBy(sidx + " " + sord).Skip(page * rows).Take(rows).ToList();

8

「它」 的別名是問題,所以下面的代碼應該工作:

前綴的過濾器字段名標題it.Title

我在這裏找到答案.. http://challenge-me.ws/?tag=/Exceptions

+0

與OP有相同的信息,這是修復。 – 2012-03-28 22:21:34