0

我正在使用 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将SQL“按原样”传递给BD?

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

谢谢!

4

1 回答 1

0

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

于 2013-03-08T01:26:49.780 回答