实体框架:设置MySQL自定义环境变量 [英] Entity Framework : Set MySQL custom environment variables
问题描述
我有一个Entity Framework 5.0的问题。我也在使用Silverlight 5和MySQL 5.6。
I have an issue with Entity Framework 5.0. I'm working with Silverlight 5 and MySQL 5.6 too.
我需要在每个连接到MySQL服务器之前设置一个环境MySQL变量。
例如
SET @my_var ='test';
SET @my_var = 'test';
在Mysql下我没有任何问题。
Under Mysql I don't have any issues.
以下引发了一个 EntityFrameworkException (@附近的语法错误)。
The following raises an EntityFrameworkException (syntax error near '@').
this.ObjectContext.CreateQuery<object>(" SET @my_var = 'test' ");
或
this.ObjectContext.CreateQuery<object>(" CALL set_my_var('test') ");
最后一个方法引发了一个MySQLException,表示DataReader已经打开,需要关闭。
This last method raises a MySQLException saying that a DataReader is already open and need to be closed.
this.ObjectContext.ExecuteStoreQuery<object>(" CALL set_my_var('test') ", null);
我还试图设置一个MySQL系统环境(不@),每次都有相同的结果。
I also tried to set a MySQL system environment (no '@') with the same result every time.
任何帮助将不胜感激!
谢谢。
Any help will be much appreciated ! Thank you.
推荐答案
由于您的语句不是查询(即不返回任何结果),您应该使用 ExecuteStoreCommand
。这样做应该可以工作:
Since your statement is not a query (i.e. does not return any result) you should use ExecuteStoreCommand
. Something like this should work:
ctx.ExecuteStoreCommand("SET @my_var = 'test'")
这篇关于实体框架:设置MySQL自定义环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!