2011-01-28 111 views
4

我試圖做一個查詢,我把一個文本列,其中包含一個整數作爲文本,到一個Int32。這裏的查詢:實體框架4.0:實體SQL CAST操作不工作

SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS Edm.Int32) > 5 

不過,我得到以下消息的System.Data.EntitySqlException:

類型 'Edm.Int32' 找不到。確保已加載所需的模式並正確導入名稱空間。類型名稱,第1行,第75列。

根據MSDN,Edm.Int32應該是有效類型。

有誰知道錯在哪裏?

編輯:

一些試驗和錯誤之後,我發現了以下工作:

SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS System.Int32) > 5 

是MSDN中的例子錯了嗎?我覺得我在這裏丟失了一些東西......

回答

5

如果使用EntityCommand執行查詢,則數據類型是EDM類型,而如果使用ObjectQuery執行查詢,則數據類型是CLR類型。

看起來像你正在通過ObjectQuery執行comman。

+0

我正在使用ObjectContext.CreateQuery ()。這解釋了這個問題! – Mas 2011-02-08 14:12:03