2013-03-07 37 views
0

我正在使用DB2,Entity Framework和C#4.0一起工作很好。 我的問題是試圖獲得系統日期的下一個代碼時...無法使用EntityFramework查詢DB2當前日期ObjectContext.CreateQuery

var query = dbcontext.CreateQuery<TResult>("SELECT current date FROM sysibm.sysdummy1;"); 
var result = query.AsEnumerable().First(); 

查詢執行DB2確定,但EF產生異常,並顯示「查詢sintax無效。臨近標識符「日期'...「。

看來,EF做了自己的SQL解析,但沒有使用DB2語法等。

所以..有沒有辦法強制EF將「按原樣」傳遞給BD?

或者可能在DB2中使用函數或其他變量來避免使用奇怪的語法(「當前日期」,它真的顯示爲一個列名,後面跟着其他SQL方言中的別名)?

謝謝!

+1

也可以使用'CURRENT_DATE'。我不確定這是否會有所幫助(我沒有用過DB2的EF)! – bhamby 2013-03-07 23:22:00

回答

0

我假設你使用ObjectContext和DbContext,儘管dbContext的名字。 ObjectContext.CreateQuery使用ESQL查詢,而不是數據庫特定的SQL查詢。如果要發送特定於數據庫的SQL查詢,則需要使用ExecuteStoreQuery

相關問題