我正在使用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方言中的别名)?
谢谢!
答案 0 :(得分:0)
我假设您使用的是ObjectContext和DbContext,尽管dbContext名称。 ObjectContext.CreateQuery采用ESQL查询而不是数据库特定的SQL查询。如果要发送特定于数据库的SQL查询,则需要使用ExecuteStoreQuery