无法使用EntityFramework ObjectContext.CreateQuery查询DB2当前日期

时间:2013-03-07 21:24:03

标签: .net entity-framework db2

我正在使用DB2,Entity Framework和C#4.0一起工作。 我的问题是尝试使用下一个代码获取系统日期...

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

查询在DB2中执行正常,但EF产生一个异常,消息“查询sintax无效。在标识符'date'附近......”。

看起来EF做了自己的sql解析,但是没有使用DB2语法。

那么..有没有办法强制EF将“按原样”传递给BD?

或者可能在DB2中使用函数或其他变量来不使用那种奇怪的语法(“当前日期”,它实际上看起来像一个列名,后跟其他SQL方言中的别名)?

谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您使用的是ObjectContext和DbContext,尽管dbContext名称。 ObjectContext.CreateQuery采用ESQL查询而不是数据库特定的SQL查询。如果要发送特定于数据库的SQL查询,则需要使用ExecuteStoreQuery